【发布时间】:2014-12-03 05:36:46
【问题描述】:
我正在尝试在 Masm 代码中的 C:\ 下创建一个文件。 但永远不可能成功。不知道代码哪里出错了。
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 中没有特殊含义。我想这与特权有关。 Look here(我没有验证解决方案)。
-
也可以,但它需要重新启动,我正在尝试编写一个简单的病毒,所以我不想重新启动用户的计算机。感谢您的帮助,这是一个很好的答案和解决方案!学习了。
标签: winapi assembly masm createfile irvine32