开发者

Converting static linked library to dynamic linked library under windows

I am in the midst of evaluating the b开发者_如何学Cenefits of changing our program from 30+ statically linked libraries to 30+ dynamically linked libraries. We hope by changing to DLL, it will reduce the link time.

One immediate problem is the requirement to add __declspec in front of all the classes to create the lib file for other dlls to link. Is there a way to get around that? Is there a flag in the compiler to force a lib generation so to make all classes inside the DLL available for export? If not, is there any existing script/program that will do that? That will certainly make the switch from statically linked library to a dynamic one a lot easier. If not, what is the rationale behind __declspec? Why not an option to make all dll functions exportable?

Thank you.


Perhaps it's too late, but have you looked into using a DEF file?


There is one another way to solve your problem.

You just need to create one definition file(.def) and export all the methods or class you want to share.

U will also have to set : Properties->Linker->Input->Module Definition File -> add name of your created .def file.

Now use run time dynamic linking: In project where you want to call the exported methods use LoadLibrary to get handle of your Dll and call the required method using GetProcAddress.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜