我正在使用 __declspec(dllexport) 从 dll 中导出全局变量,并使用 __declspec(dllimport) 在客户端 exe 中导入相同的变量。
dll 中的全局变量在单独的线程中随时间更新。我想在我的客户端 .exe 中接收这个更新的数据,但我没有得到它。每次我使用客户端 exe 中的计时器读取数据时,我得到的是全局变量的唯一初始值。
这种行为的解释是什么?我能做些什么来实现我想要实现的目标?是否有不包括从 dll 导出的 get() 和 set() 函数的选项?
以下是从 dll 导出的代码:
typedef struct{
int iTotalQueues;
int iCurrentQueue;
wchar_t szQueueName[100];
}UPDATE_STATUS_DATA;
__declspec(dllexport) UPDATE_STATUS_DATA UpdateStatusData;
该结构成员长时间循环更新。更新代码在 dll 本身中。
这是在exe中导入的代码:
typedef struct{
int iTotalQueues;
int iCurrentQueue;
wchar_t szQueueName[100];
}UPDATE_STATUS_DATA;
__declspec(dllimport) UPDATE_STATUS_DATA UpdateStatusData;
我正在计时器响应中读取这些数据,但没有获得更新的值。