DLL中导出全局变量的方法及导入时需要注意的问题

本文介绍了DLL中导出和导入全局变量的方法,重点解析了使用全局变量时遇到的access violation问题。在导出时,可以通过.def文件的EXPORTS添加CONSTANT或DATA。而在导入时,需注意extern声明的是全局变量的地址,需要通过指针转换访问。推荐使用_declspec(dllimport)方式导入,以直接操作全局变量。
摘要由CSDN通过智能技术生成

      今天做程序需要导出DLL中的一个全局指针,可是导出后只要一使用就会发生access violation,后来在网上找了找文章,原来是之前导入方法存在问题,下面把整个DLL导出导入全局函数的方法整理一下,作为记录。整个文章大部分参考http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/699672_7.html,这篇文章写的很不错,有兴趣的可以看看。

 

       全局变量的导出 方法:

全局变量在DLL中的定义和使用方法与一般的程序设计是一样的。若要导出某全局变量,需要在.def文件的EXPORTS后添加:

 

变量名 CONSTANT    //过时的方法


  或

变量名 DATA      //VC++提示的新方法

 

       全局变量的导入使用 方法:

extern int dllGlobalVar;

printf("%d ", *(int*)dllGlobalVar);
*(int*)dllG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值