【问题标题】:Link assembly script with a resource file将汇编脚本与资源文件链接
【发布时间】:2020-03-12 21:28:30
【问题描述】:

我正在尝试将我的汇编脚本与使用 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 文件,但结果是一样的。 汇编代码是正确的,因为我是从书中复制的。

【问题讨论】:

    标签: assembly masm64


    【解决方案1】:

    我也尝试使用 cvtres.exe 将 .res 文件转换为 .obj 文件并将其替换为 .bat 文件,但结果相同。

    我假设您一直认为需要编译此资源文件,但 .rc 和 .res 文件之间存在显着差异。 .rc 文件只是一个资源脚本,而 .res 文件是已经编译好的资源文件。 链接时,您需要编译文件才能生成最终的可执行文件。

    请确保您在脚本中使用了正确的标识符,因为这很可能是您看不到输出的原因。 此外,请确保您提供了 dll 链接器所需的适当路径。

    关于链接器创建的快捷方式文件,我设法重现了它,但我不太确定它的目的是什么,我也找不到 Microsoft 文档中的任何开关来关闭此行为,所以可能是最快的摆脱它的方法是通过添加修改批处理脚本:

    del mllink$.lnk

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多