首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

_declspec(dllexport) 的使用有关问题

2012-05-03 
_declspec(dllexport) 的使用问题在csdn上搜索了到相对问题,但没有满意的答案在调用dll的应用程序中,用__d

_declspec(dllexport) 的使用问题
在csdn上搜索了到相对问题,但没有满意的答案
在调用dll的应用程序中,用__declspec(dllexport) 声明函数程序照样通过,成功运行,这是什么原因?

比如 写了 一个动态库 a.dll  
头文件 a.h 中

extern "C" __declspec(dllexport)  
void fun();
函数

main.cpp中 调用fun()

#progma comment(lib,"a.lib")

extern "C" __declspec(dllexport) void fun();
......
程序照样运行,extern "C" __declspec(dllexport) void fun();=>void fun();不能运行
extern "C" __declspec(dllexport) void fun();=>extern "C" __declspec(dllimport) void fun(); 可以


ps: 有时去掉#progma comment(lib,"a.lib") 程序也可以照样运行。
我彻底恍惚了~

[解决办法]
dll保证dllexport,其它地方,dllexport或者dllimport或者没有都无所谓。

你的extern "C" __declspec(dllexport) void fun();=>void fun();不行,是因为缺少extern "C"

缺少#progma comment(lib,"a.lib")会连接不成功,但你可以在工程设置里面添加a.lib,效果一样。

你老是说运行成不成,我不明白,我理解你的意思应该是编译连接行不行。

热点排行