Возможно, вы неправильно настроили dllexport/dllimport
.В результате вы получаете разные копии одной и той же переменной.(один в DLL и один снаружи)
Внутри DLL вам нужно скомпилировать с dllexport
, чтобы открыть переменную для клиентского приложения.
Затем в клиентском приложении вам нужнообъявить ту же переменную, что и dllimport
.Затем он будет ссылаться на тот, который находится в DLL.
Это немного прискорбно, потому что те же самые заголовки обычно используются для DLL и клиента.Итак, обычный обходной путь таков:
#ifdef COMPILE_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
РЕДАКТИРОВАТЬ:
Можете ли вы подтвердить, есть ли у вас две копии одной и той же переменной?Попробуйте распечатать адреса как внутри DLL, так и снаружи.