__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;
タイマー応答内でこのデータを読み取っていますが、更新された値を取得していません。