我想在Masm代码的C:\下创建一个文件。 但永远不会成功。我不知道代码出了什么问题。Masm invoke createfile不起作用
INCLUDE Irvine32.inc
.data
fileName BYTE "C:\\haha.txt",0
fileHandle HANDLE ?
.code
main PROC
INVOKE CreateFile,
ADDR filename, GENERIC_WRITE, DO_NOT_SHARE, null, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,0
exit
main ENDP
END main
如果我改变
fileName BYTE "haha.txt",0
它会成功写在程序文件夹中的文件haha.txt。 我不明白为什么它不写出来C:\ 另外,我正在使用Visual Studio 2013,我运行该程序通过在调试下运行它,启动时无需调试。
适用于此(WinXP)。因为反斜杠在MASM或ML中没有特殊含义,所以不需要加倍反斜杠。我想这与特权有关。 [看这里](http://www.mkyong.com/computer-tips/cant-create-file-in-the-c-drive-root-directory-windows-8/)(我没有验证解决方案)。 – rkhb 2014-12-03 22:34:50
也可以工作,但它需要重新启动,我试图写一个简单的病毒,所以我不想重新启动用户的计算机。感谢您的帮助,这是一个很好的答案和解决方案!学到了。 – 2014-12-04 03:58:47