Windows 从dll导入的全局变量未更新
我正在使用u declspec(dllexport)从dll导出全局变量,并使用u declspec(dllimport)在客户端exe中导入相同的变量 dll中的全局变量将在单独的线程中随时间更新。我想在我的client.exe中接收此更新的数据,但我无法获取它。每次使用客户端exe中的计时器读取数据时,我得到的是全局变量的唯一初始值 对这种行为的解释是什么?我能做些什么来实现我想要实现的目标?是否有不包含从dll导出的get()和set()函数的选项 以下是从dll导出的代码:Windows 从dll导入的全局变量未更新,windows,winapi,dll,Windows,Winapi,Dll,我正在使用u declspec(dllexport)从dll导出全局变量,并使用u declspec(dllimport)在客户端exe中导入相同的变量 dll中的全局变量将在单独的线程中随时间更新。我想在我的client.exe中接收此更新的数据,但我无法获取它。每次使用客户端exe中的计时器读取数据时,我得到的是全局变量的唯一初始值 对这种行为的解释是什么?我能做些什么来实现我想要实现的目标?是否有不包含从dll导出的get()和set()函数的选项 以下是从dll导出的代码: typede
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;
我在计时器响应中读取这些数据,但没有得到更新的值。问题中的代码,正如您在构建简单测试项目时所期望的那样。因此,以下是我可以编造的两种解释:
UpdateStatusData
。因此,在DLL中对UpdateStatusData
的值所做的更改不会反映在副本中