使用模块定义文件 (.def) 导入 DLL

linux狂热

我想创建并发布一个 Windows C 库。我读过有两种方法可以做到,一种是在头文件中使用 __declspec(dllexport) 和 __declspec(dllimport),另一种是使用模块定义文件 ( link )。我不想修改头文件,所以我选择了第二个并创建了库,我已经确认它导出了所需的符号。

现在,当我发货时:

  1. 头文件是否仍然需要在每个导出的函数前面都有 __declspec(dllimport) 以便客户端可以使用它?
  2. 我需要将模块定义文件与 dll 一起发送,还是 .lib 文件就足够了?

我当然已经用一个玩具示例测试了两者,我相信我的两个问题的答案都是否,但我想在发布任何东西之前与有经验的开发人员确认这一点。

我找到了这篇文章,但它写得很糟糕,我没有任何意义。

塞尔比

您可以只为您的客户提供 .h 文件、.lib 导入库和 .dll 文件本身。他们不需要 .def 文件。

如果我记得,declspec 导入的东西允许链接器进行小幅优化。关于导入表的一些事情。如果我能找到它,我会稍后查找并更新答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Clang编译DLL时指定DEF文件

Python DLL 导入错误,找不到模块

DLL导入

在与Java文件相同的目录中导入.dll

对.net使用SortedDictionary(从C#.dll导入)

使用VS 2010调试导入的dll

如何在Visual Studio 2010中使用DEF文件从现有C ++代码生成DLL

DLL 导出 __stdcall 没有 DEF 文件和使用 VS 修饰的函数名称

如何在Python中从C#dll导入子模块

在F#中的模块中包装DLL导入

Pyinstaller:导入错误:DLL加载失败:找不到指定的模块

Pyinstaller 导入错误:DLL 加载失败:找不到指定的模块

DLL加载失败:导入scipy时找不到指定的模块

无法打开元数据文件'System.EnterpriseServices.Wrapper.dll'-'导入模块'System.EnterpriseServices.Wrapper.dll错误'

导入聚合时 DLL 加载失败:无法找到指定的模块 pyhton pandas excel 文件合并

无法在python中导入自定义DLL

导入matplotlib._png作为_png导入:错误:DLL加载失败:找不到指定的模块

导入错误:DLL 加载失败:找不到指定的模块。在尝试导入 TensorFlow 时

如何从DLL导入Cmdlet

如何导入libusb dll

导入 .dll-s

链接器找不到导入的 DLL 的 LIB 文件

pyspark导入用户定义的模块或.py文件

使用conda从Anaconda导入numpy时出错(DLL加载失败:找不到指定的模块)

导入错误:DLL加载失败:使用cxfreeze时找不到指定的模块

导入错误:python39.dll 的模块使用与此版本的 Python 冲突

使用.def文件的利与弊

从自定义 PE 文件中的 dll 导入时,无法找到过程入口点 MessageBoxA

使用PyInstaller时出现“ ImportError:导入时DLL加载失败”