求大侠指导,关于DLL中全局变量的使用
求大侠指点,关于DLL中全局变量的使用

我按照这个方法使用全局变量,却有如下提示

哪里使用有问题?
在exe内,我包含的头文件跟dll里的头文件有一点点不一样:exe中所使用的头文件,没有dll中头文件声明的extern __declspec(dllexport) int WndDestroy;
在exe中用到WndDestroy变量的CPP中,我这样声明extern _declspec(dllimport) int WndDestroy;
使用时,则直接用WndDestroy
请问问题出在哪里?
------解决思路----------------------
参考上面的,你在exe中如果想用到g_t的话,用#include "dll.h"包含这个动态链接库的头文件就行了!
你原先exe中用的变量名为WndDestroy,而dll中的为g_t,说白了dll就是导出符号,你用的WndDestroy在dll中根本不存在,所以肯定有问题
------解决思路----------------------
导出全局变量?
你可以增加set、get方法来操作这个变量,将set、get方法导出,不要直接导出一个变量
我按照这个方法使用全局变量,却有如下提示
哪里使用有问题?
在exe内,我包含的头文件跟dll里的头文件有一点点不一样:exe中所使用的头文件,没有dll中头文件声明的extern __declspec(dllexport) int WndDestroy;
在exe中用到WndDestroy变量的CPP中,我这样声明extern _declspec(dllimport) int WndDestroy;
使用时,则直接用WndDestroy
请问问题出在哪里?
------解决思路----------------------
//dll.h
#ifdef MYDLL
#define MYDLL_API extern"c" _declspec(export)
#else
#define MYDLL_API extern"c" _declspec(import)
#endif
MYDLL_API int g_t;
//dll.cpp
#define MYDLL
#include "dll.h"
MYDLL_API int g_t=0;
参考上面的,你在exe中如果想用到g_t的话,用#include "dll.h"包含这个动态链接库的头文件就行了!
你原先exe中用的变量名为WndDestroy,而dll中的为g_t,说白了dll就是导出符号,你用的WndDestroy在dll中根本不存在,所以肯定有问题
------解决思路----------------------
导出全局变量?
你可以增加set、get方法来操作这个变量,将set、get方法导出,不要直接导出一个变量