2014-09-21 29 views
0

这个简单的MASM程序不断崩溃。Masm Program Not Working(使用Win32 API - CreateFile)

我使用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 

任何人都可以帮忙吗?

回答

2

CreateFile的第一个参数是地址的文件名,而不是文件名的前几个字符。所以,你需要filename前放置一个ADDR运营商在invoke

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

感谢您的帮助朋友 – Khalsa 2014-09-21 18:06:19