您的位置:首页 > 其它

DLL中导出全局变量

2014-08-31 13:10 330 查看
1. DEF文件

EXPORTS

g_nTest  DATA    ;导出全局变量

GetGlobalVar     ;导出函数


2. 调用

extern int g_nTest;        //声明

int main(int argc, char *argv[])
{
*(int*)g_nTest = 1;    //注意前面的转换

return 0;
}


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

*(int*)g_nTest 可以看出。

3. 更好的调用

extern int _declspec(dllimport) g_nTest; //用_declspec(dllimport)导入
int main(int argc, char *argv[])
{
g_nTest = 1;                         //可以直接使用, 无须进行转换

return 0;
}


通过 _declspec(dllimport) 方式导入的是全局变量本身,而不再是其地址了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: