码迷,mamicode.com
首页 > 其他好文 > 详细

DLL中导出全局变量

时间:2014-08-31 14:24:41      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   ar   文件   div   log   sp   

1. DEF文件

1 EXPORTS
2 
3 g_nTest  DATA    ;导出全局变量
4 
5 GetGlobalVar     ;导出函数

2. 调用

1 extern int g_nTest;        //声明
2 
3 int main(int argc, char *argv[])
4 {
5     *(int*)g_nTest = 1;    //注意前面的转换
6 
7     return 0;
8 }

需要注意的是用 extern int g_nTest 声明所导入的并不是DLL中全局变量本身,而是其地址,应用程序必须通过强制指针转换来使用DLL中的全局变量。这一点,从

*(int*)g_nTest 可以看出。

3. 更好的调用

1 extern int _declspec(dllimport) g_nTest; //用_declspec(dllimport)导入
2 int main(int argc, char *argv[])
3 {
4     g_nTest = 1;                         //可以直接使用, 无须进行转换
5 
6     return 0;
7 }

通过 _declspec(dllimport) 方式导入的是全局变量本身,而不再是其地址了。

DLL中导出全局变量

标签:style   blog   color   使用   ar   文件   div   log   sp   

原文地址:http://www.cnblogs.com/luzhiyuan/p/3947576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!