我正在评估将我们的程序从30多个静态链接库更改为30多个动态链接库的好处。我们希望通过更改为DLL,它会缩短链接时间。
一个直接的问题是需要在所有类的前面添加__declspec,以便为其他要链接的dll创建lib文件。有没有办法解决这个问题?编译器中是否有一个标志强制生成lib,以便使DLL中的所有类可用于导出?如果没有,是否有任何现有的脚本/程序可以做到这一点?这肯定会使从静态链接库到动态库的转换变得更加容易。如果没有,__ declspec背后的理由是什么?为什么不选择使所有dll函数都可导出?
谢谢。
答案 0 :(得分:1)
也许为时已晚,但您是否考虑过使用DEF文件?
答案 1 :(得分:0)
还有另一种方法可以解决您的问题。
您只需创建一个定义文件(.def)并导出您要共享的所有方法或类。
U还必须设置: 属性 - >链接器 - >输入 - >模块定义文件 - >添加您创建的.def文件的名称。
现在使用运行时动态链接: 在要调用导出方法的项目中,使用LoadLibrary来获取Dll的句柄并使用GetProcAddress调用所需的方法。