A>Почему не работает __asm в VC6 ? A>Ни досовские, ни BIOS'овские функции не работают, а в BC5 все нормально, почему? Может компилятору или линкеру надо чего-то сказать?
Стандартный компилятор в поставке VC6 создаёт только Win32 приложения, а они, ясное дело, о прерываниях DOS понятия не имеют. Аналогично, прерывания BIOS защищены от прямого вызова в любой нормальной мультизадачной системе, и из Win32 приложения до них достучаться не просто.
Если ты пишешь под DOS, то и компилятор бери соответственный. Если работать удобно в Visual Studio, то прикручивай к нему этот компилятор.
A>>Почему не работает __asm в VC6 ? A>>Ни досовские, ни BIOS'овские функции не работают, а в BC5 все нормально, почему? Может компилятору или линкеру надо чего-то сказать?
F>Стандартный компилятор в поставке VC6 создаёт только Win32 приложения, а они, ясное дело, о прерываниях DOS понятия не имеют. Аналогично, прерывания BIOS защищены от прямого вызова в любой нормальной мультизадачной системе, и из Win32 приложения до них достучаться не просто. F>Если ты пишешь под DOS, то и компилятор бери соответственный. Если работать удобно в Visual Studio, то прикручивай к нему этот компилятор.
Машинный код команды вызова прерывания не зависит от того ДОС это или ВИН — CD XX (XX — номер прерывания). Другое дело, что механизм вызова прерывания в реальном(ДОС) и защищенном(ВИН) режимах разный. Да и прерывания BIOS не рассчитаны на работы в защ. режиме. а компилятор тут не при чем. Прада, писать проги под ДОС VC 6.0, конечно, не поможет.