我试图将我的程序集脚本链接到一个用ResEdit生成的资源文件,该资源文件与.bat文件属于同一个目录:
@echo off
C:\masm64\ml64.exe dialog_box.asm /link /entry:Main resources.res /subsystem:windows /defaultlib:"C:\masm64\kernel32.Lib" /defaultlib:"C:\masm64\user32.Lib" /defaultlib:"C:\masm64\ComCtl32.Lib" /LARGEADDRESSAWARE:NO
pause因此,我得到了.exe文件,该文件应该在屏幕上显示一个对话框,但是打开它之后什么也不会发生。我还得到一些快捷文件链接后,不正常发生(当我没有使用任何.res文件在链接)。我不知道我做错了什么。我还尝试使用cvtres.exe将.res文件转换为.obj文件,并在.bat文件中替换它,但结果是一样的。汇编代码是正确的,因为我从一本书中复制了它。
发布于 2022-02-03 19:32:12
我还尝试使用cvtres.exe将.res文件转换为.obj文件,并在.bat文件中替换它,但结果是一样的。
我假设您一直认为这个资源文件需要编译,但是.rc和.res文件之间有很大的区别。.rc文件只是一个资源脚本,而.res文件已经编译了资源文件。链接时,需要编译文件才能生成最终的可执行文件。
确保在脚本中使用了正确的标识符,因为这很可能是您没有看到输出的原因。此外,请确保您已经为dlls链接器需求提供了适当的路径。
关于链接器创建的快捷方式文件,我设法复制了这个文件,我不太清楚它的目的是什么,我也没有在Microsoft文档中找到任何开关来关闭这种行为,因此,可能最快的方法是修改批处理脚本,添加:
del mllink$.lnk
https://stackoverflow.com/questions/60662070
复制相似问题