Masm程序不起作用。(使用Win32 API - CreateFile)

时间:2014-09-21 15:31:39

标签: assembly masm masm32

这个简单的MASM程序不断崩溃。

我正在使用Win32 API

CreateFile功能无效,导致我的应用崩溃。

.386 
.model flat,stdcall 
option casemap:none 
include \masm32\include\windows.inc 
include \masm32\include\kernel32.inc 
includelib \masm32\lib\kernel32.lib 
include \masm32\include\user32.inc 
includelib \masm32\lib\user32.lib 

.data 
filename byte "dummy.txt", 0

.code 
main PROC

    INVOKE CreateFile,
                filename,
                GENERIC_WRITE,
                0,
                NULL,
                CREATE_NEW,
                FILE_ATTRIBUTE_NORMAL,
                NULL

    invoke ExitProcess,NULL
main ENDP
END main

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

CreateFile的第一个参数是文件名的地址,而不是文件名的前几个字符。因此,您需要在ADDR filename之前放置invoke运算符:

INVOKE CreateFile,
            ADDR filename,  
            GENERIC_WRITE,
            0,
            NULL,
            CREATE_NEW,
            FILE_ATTRIBUTE_NORMAL,
            NULL