如何用NASM创建.dll文件?

时间:2011-04-14 17:12:09

标签: c++ dll assembly nasm

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

祝你好运, 本杰明。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

导出myfunc

您需要提供在初始化时调用的_dllmain函数。 只需在eax中返回1并返回12,因为你需要清理这里没有使用的3个args。

使用-fobj(omf)进行汇编,然后使用-dll链接添加到pe和GUI选项