Kev*_*vin 3 c++ visual-studio-2005 visual-c++
我用C++编程已经有一段时间了,所以整个导出/导入的想法从我的脑海中消失了.
你能解释一下为什么要使用__declspec(dllexport)和import thingy,如果看起来我可以使用其他库中的类而没有那些.
我在VC++ 2005中创建了一个解决方案,添加了控制台应用程序项目和两个dll库项目.然后在LibB项目中的LibA,ClassB中创建ClassA.
一旦我将ClassA.h和ClassB.h包含在我的控制台应用程序源代码中,并将其与LibA.lib和LibB.lib链接,我就能够在控制台应用程序中创建和使用ClassA和ClassB的实例.所以基本上我能够使用类而不使用__declspec导出/导入它们.
你能解释一下 - 我在这里缺少什么.
一旦我将ClassA.h和ClassB.h包含在我的控制台应用程序源代码中,并将其与LibA.lib和LibB.lib链接,我就能够在控制台应用程序中创建和使用ClassA和ClassB的实例.
这听起来像你使用静态链接.这__declspec(dllexport)与直接链接到类的目标文件的方式不同.
如果要使用与DLL的动态(运行时)链接,则必须使用上述声明或指定导出函数的DEF文件.DLL包含一个导出表,列出了暴露给其他可执行文件的函数.所有其他函数仍保留在DLL内部.
也许你很困惑来自Linux世界,情况恰恰相反:默认情况下,所有符号都在外部可见.
| 归档时间: | 
 | 
| 查看次数: | 2855 次 | 
| 最近记录: |