AfxGetModuleState возвращает значение с другим адресом в releasewithdebug

У меня есть удобный класс, который переключается между различными библиотеками, в которых я храню ресурсы. Каждая DLL регистрируется (экземпляр и другая информация), используя enum значение. Информация хранится в статических полях. Когда мне нужно переключить дескриптор ресурса, я использую конструктор с определенным модулем enum значение, которое переключает текущий дескриптор ресурса и сохраняет старый дескриптор ресурса.

Ситуация следующая. Я получаю текущее состояние модуля с AfxGetModuleState в DLL с алгоритмом, затем используйте мой удобный класс для переключения дескриптор ресурса на DLL с ресурсами, затем я снова использую AfxGetModuleState в длл с алгоритмом. Адрес структуры, возвращаемой AfxGetModuleState в длл с алгоритмом и в моем удобном классе есть разные.

Мое приложение является однопоточным, поэтому адрес структуры, возвращаемой AfxGetModuleState должно быть одинаковым (оно должно быть глобальным), но это разные.

Это приводит к невозможности загрузки ресурсов из определенной библиотеки DLL, потому что текущий дескриптор ресурсов, который был установлен в моем удобном классе для библиотеки DLL с ресурсами, остается нулевым в библиотеке DLL с алгоритмом и CString::LoadString(nID) выходит из строя.

Отладочная версия моего приложения работает хорошо, но ошибка появляется только в releasewithdebug,

PS: я начинающий программист MFC.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector