如何使用 NASM 创建 .dll 文件?

发布于 2024-11-02 02:16:02 字数 229 浏览 1 评论 0原文

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

此致, 本杰明.

Is is possible to assemble Assembly code into .dll files with NASM assembler?
I need this because I want to link a .dll file containing Assembly code and a .dll file containing C++ code together, and load that .dll with JNI (Java Native Interface) that will call the C++ functions which are just wrappers for the Assembly functions.
Compiling the C++ & Assembly code into two separate .dll modules, calling the "Assembly .dll code" from the "C++ .dll code" is also a possibility.

Best regards,
Benjamin.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感情洁癖 2024-11-09 02:16:03

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

export myfunc

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

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

you can create a dll with nasm and use alink as your linker.
In your source use the following lines for every function in your dll:
global myfunc

export myfunc

You need to provide a _dllmain function that gets called upon initialisation.
Just return 1 in eax and retn 12 because you need to cleanup 3 args which aren't used here.

Assemble with -fobj (omf) then link with -dll added to the pe and GUI options

千里故人稀 2024-11-09 02:16:02

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

NASM just creates an object (.o/.obj) file, right? Why not link that into your C++ DLL by specifying it as an additional input on either the linker command line or the project properties?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文