在我的公司,我们用.def文件来指定需要导出的符号。 (我希望我能使用更现代化的和自动化的技术,不幸的是,谁决定在八十年代住后面的家伙)。

手写一个.def文件,使用手动复制粘贴是无聊且容易出错的,但到目前为止我可以忍受。

然而,我需要写为64位版本的DLL类似.def文件。几个功能的名称装饰改变,我不知道是否有产生用于从32位版本的64位版本.def文件的一种方法。

您知道的任何工具,可以帮助我吗?这甚至现实吗?我真的不觉得我要亲手做一个更多的时间。任何解决方案,甚至是一个涉及编码我自己的工具,是值得欢迎的。

感谢您。

有帮助吗?

解决方案

我可能会__declspec(dllexport)的我想要的符号,编译,然后运行DUMPBIN对得到的DLL /出口得到错位的名称,然后你可以删除__declspec并作出DEF文件。

其他提示

告诉你的老板回到了80个年代。说真的,这不是一个可移植的方式出口的符号名。如果C ++编译器更名重整方案?然后,你就必须做到这一点(什么jcopenha说)一遍。如果当它发生了,你不工作呢?是另一个可怜的人将不得不花费宝贵的时间来找出什么和怎么做呢?我会尽力说服老板使用__declspec(dllexport)。现在可以节省时间,并有可能在未来的时间。

我假设你正在导出类和重载函数。如果你不是,那么我会导出功能与C名字来代替。这些名称不错位,也不会改变。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top