读书人

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

发布时间: 2013-08-10 21:14:06 作者: rapoo

问个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;
}

读书人网 >C++

热点推荐