几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » 程序设计 » vc编程
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2007-07-11, 02:23 PM   #1
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?

编DLL的时候偶只用过__declspec(dllexport),只是一直想知道__declspec(dllimport)是干什么用的,怎么用?
yogy离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
旧 2007-07-11, 02:24 PM   #2
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?

从书上看到的:
使编译器延迟建立vtable,直到一个真正的实例被创建起来的时候,才建立vtable!为了压缩最后生成的代码长度!
yogy离线中   回复时引用此帖
旧 2007-07-11, 02:24 PM   #3
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?

__declspec( dllexport )是告诉编译器这个函数(或变量)是dll的导出函数。
而__declspec(dllimport)就是告诉编译器这个函数(或变量)是某个dll里的导出函数,连接时进行查找lib文件。
一般动态连接库头文件写法就是
#ifdef _DLL
#define FUNC_DLL __declspec( dllexport )
#else
#define FUNC_DLL __declspec( dllimport)
#endif
yogy离线中   回复时引用此帖
旧 2007-07-11, 02:25 PM   #4
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?

导出函式__declspec(dllexport)在dll中用
导入函式__declspec(dllimport)在要调用dll的程序中用

用__thread或__declspec(thread)声明线程局部变量。
yogy离线中   回复时引用此帖
旧 2007-07-11, 02:29 PM   #5
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?

我现在要编一个DLL供PB调用,有两个函数同名,只是参数稍有不同,请问怎么定义def文件?

例如:
long ABC(int intFlag,char* aaa)
long ABC(int intFlag,long* bbb)

应该怎么去编这样的dll ?
>
解决了!谢谢上面的各位!

1、在dll中合并为一个函数:
extern "C" long __stdcall ABC(int intFlag,void* aaa)
然后在函数内部,根据情况对aaa进行 (char*) 和 (long*),分别进行处理。
这样def文件中只有一个函数名ABC,就没有问题了。

2、在PB中声明如下:
Function long ABC(long intFlag,ref string aaa) Library 'my.dll' alias for "ABC"
Function long ABC(long intFlag,ref long bbb) Library 'my.dll' alias for "ABC"
yogy离线中   回复时引用此帖
旧 2007-07-11, 02:29 PM   #6
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?

14 楼wshcdr(dd)回复于 2005-04-01 22:38:18 得分 0

DLL导出有两种方法
1.DEF文件描述
2._declspec(dllexport)

还有一个HACK的办法,用指针实现的Top

15 楼jronald(深白色)回复于 2005-04-01 23:32:35 得分 0

找到答案了
用_declspec(dllimport)是为了让编译器生成效率更高的代码,不用也不会出错
yogy离线中   回复时引用此帖
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 12:51 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多