【问题标题】:How to export functions that have no name from a dll如何从 dll 中导出没有名称的函数
【发布时间】:2018-11-09 16:30:56
【问题描述】:

我有一个 .dll 我想静态链接到我的 C++ exe。我创建了一个我认为包含准确函数签名的标头,因此我需要从我的 dll 构建一个 lib 文件。我使用 dumpbin 来获取 dll 中函数的名称,但大多数函数是无名的并且只有序数。那我应该在我的 .def 文件中放什么?

我设法找到了一些从 dll 创建 lib 文件的批处理脚本,但它们只是省略了那些无名函数。

我认为许多人会非常感谢有关 lib、def、obj 文件和链接的深入教程.

我正在使用 Visual C++ Express 2010。

【问题讨论】:

  • 与您的问题无关,但为什么您使用的编译器已经有将近十年的历史了?为什么不获取最新版本以便使用现代 C++?
  • @JesperJuhl Bah,没什么!我正在使用即将推出 20 年的 Borland C++Builder 6.0 工作。感谢上帝提供用于工作场所安全的遗留系统。 ;)
  • 你说得对,它不相关。我不想冒险就此展开评论讨论。
  • @Someprogrammerdude 我不想要你的工作。幸运的是,我的工作场所使工具保持最新状态,因此我们从 4 月就开始使用 C++17。而且我不会回去。
  • 这会有所帮助:docs.microsoft.com/en-us/cpp/build/… 和 docs.microsoft.com/en-us/cpp/build/…。您可以将@X 添加到函数条目,其中 X 是函数的序数值(您可以从 dumpbin 中看到)

标签: c++ dll static-linking


【解决方案1】:

如果函数仅按序号导出(即每个导出都用 NONAME 修饰),那么名称无关紧要,您可以指定任何您喜欢的名称。当然,您最好知道每个序号应该是什么。

【讨论】:

    猜你喜欢
    • 2011-01-02
    • 2015-03-19
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 2012-01-24
    • 2010-11-30
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多