Я пытался написать простую программу командной строки в сборке с использованием Win32 API. Я написал следующее, получил его для компиляции и ссылки с нулевыми ошибками или предупреждениями и начал его из командной строки, но ничего не появилось в командной строке. Может ли кто-нибудь увидеть, что не так, или что бы это произнесло «Hello World!» в командной строке? Программа:Win32 ASM-программа ничего не печатает в командной строке
; Block 1
.386
.model flat,stdcall
option casemap:none
; Block 2
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
; Block 3
.data
szMsg db "Hello World!",0
nNumToWrite dd 12
; Block 4
.data?
numwritten dd ?
CommandLine LPSTR ?
; Block 5
.code
start:
invoke GetCommandLine
mov CommandLine,eax
invoke WriteConsole,CommandLine,addr szMsg,nNumToWrite,numwritten,NULL
xor eax,eax
invoke ExitProcess,eax
end start
Вы пробовали отлаживать? Что ты нашел? – tenfour
Параметры, которые вы передаете 'WriteConsole', неверны. Первыми параметрами должны быть дескриптор выходного буфера консоли, а четвертый должен быть указателем на количество написанных символов (вы передаете значение). – user786653
Я изменяю эту строку, чтобы 'invoke WriteConsole, STD_OUTPUT_HANDLE, addr szMsg, nNumToWrite, addr numwritten, NULL', но до сих пор не радует. – mring