@XRFD

Выдаёт ошибку — This program cannot be run in DOS mode.при этапе компоновки и линковки?

Не могу решить две проблемы первая при этапе компоновки и линковки ml.exe /c /coff program.asm
link.exe /subsystem:windows program.obj выдаёт ошибку - This program cannot be run in DOS mode.
вторая проблема сделать так чтобы изображение окружности было вписано в квадрат в данном коде, его надо заполнить.
.486
.model flat, stdcall
option casemap :none ; case sensitive
include windows.inc
include kernel32.inc
include user32.inc
include gdi32.inc
 
 
 
 
 
includelib kernel32.lib
includelib user32.lib
includelib gdi32.lib
 
.data? ; ---
Desktop dd ?
Canvas dd ?
Razmer dd 4 dup (?);
X dd ?
Y dd ?
X1 dd ?
Y1 dd ?
X2 dd ?
Y2 dd ?
 
.data
R dd 100
dva dd 2
.code
start:
call GetDesktopWindows
mov Desktop,eax
push offset Razmer
push Desktop
call GetWindowReact
push Desktop
call GetWindowsDC
mov Canva,eax
 
mov eax,Razmer
add eax,Razmer+8
mov edx,0
div dva
mov X,eax
mov eax,Razmer+4
add eax,Razmer+12
mov edx,0
div dva
mov Y,eax
mov eax,X
sub eax,R
mov X1,eax
mov eax,Y
sub eax,R
mov Y1,eax
mov eax,X
add eax,R
mov X2, eax
mov eax,Y
add eax, R
mov Y2,eax
push Y2
push X2
push Y1
push X1
push Canvas
call Ellipse
push 0
call ExitPocess
end start
  • Вопрос задан
  • 533 просмотра
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
при этапе компоновки и линковки ml.exe /c /coff program.asm
link.exe /subsystem:windows program.obj выдаёт ошибку - This program cannot be run in DOS mode.

Не нужно запускать виндовые исполняемые файлы в досе. Ассемблируй и линкуй под виндой, либо используй досовские программы коль скоро уж ты собираешь приложение для win32.

call GetWindowReact

call GetWindowsDC

у тебя тут опечатки в названиях функций, правильные названия -- GetWindowRect и GetWindowDC.

сделать так чтобы изображение окружности было вписано в квадрат

Нарисуй квадрат, нарисуй эллипс по координатам углов квадрата, а не по координатам десктопа, как у тебя сейчас написано.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы