【问题标题】:How can one create .dll files with NASM?如何使用 NASM 创建 .dll 文件?
【发布时间】:2011-08-05 17:39:25
【问题描述】:

是否可以使用 NASM 汇编器将汇编代码汇编成 .dll 文件? 我需要这个,因为我想将包含汇编代码的 .dll 文件和包含 C++ 代码的 .dll 文件链接在一起,并使用 JNI(Java 本机接口)加载该 .dll,这将调用 C++ 函数,这些函数只是汇编的包装器职能。 将C++&Assembly代码编译成两个独立的.dll模块,从“C++ .dll代码”调用“Assembly .dll代码”也是一种可能。

最好的问候, 本杰明。

【问题讨论】:

    标签: c++ dll assembly nasm


    【解决方案1】:

    NASM 只是创建一个对象 (.o/.obj) 文件,对吗?为什么不通过在链接器命令行或项目属性上将其指定为附加输入来将其链接到 C++ DLL 中呢?

    【讨论】:

    • 天啊!我不敢相信我没想到! :O 愚蠢的我.. 不管怎样,非常感谢:)。
    【解决方案2】:

    您可以使用 nasm 创建一个 dll 并使用 alink 作为您的链接器。 在您的源代码中,对 dll 中的每个函数使用以下行: 全局函数

    导出我的函数

    您需要提供一个在初始化时调用的 _dllmain 函数。 只需在 eax 和 retn 12 中返回 1,因为您需要清理此处未使用的 3 个 args。

    用 -fobj (omf) 组装,然后用 -dll 链接添加到 pe 和 GUI 选项

    【讨论】:

      猜你喜欢
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多