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

问个dll全局变量的有关问题

2013-08-10 
问个dll全局变量的问题比如我有一个dll,里面有一个全局的句柄dllGlobal;在主程序创建一个线程,得到他的句

问个dll全局变量的问题
比如我有一个dll,里面有一个全局的句柄dllGlobal;

在主程序创建一个线程,得到他的句柄,然后给dll中的dllGlobal附上这个值,能够实现吗? dll 导出全局变量 句柄
[解决办法]
在DLL中添加一个返回 全局变量 地址的导出函数
加载DLL之后主程序调用此函数,给此地址中变量赋值
[解决办法]

引用:
Quote: 引用:

在DLL中添加一个返回 全局变量 地址的导出函数
加载DLL之后主程序调用此函数,给此地址中变量赋值

不懂啊 以后估计还会有几个dll也要这么调用


其他几个DLL也这样处理,因为你主程序加载的DLL与主程序是共用相同内存区域的,数据完全可以直接共享。
只是参数引用有些不便而已。
如下:

//DLL代码部分
int g_nNum=0;//全局变量
extern __declspec(dllexport) int *GetNumber();//获取全局变量地址的函数

//你在加载DLL的后,调用GetNumber函数得到全局变量地址
//主程序部分:
main()
{
  int *pnDllNum=null;
//.....省略动态库加载于函数地址获取
      pnDllNum=GetNumber();
      *pnDllNum=100;
}

热点排行