мои проблемы связаны с собственными C ++ DLL (Visual Studio 2005, если это имеет значение) и с тем, как их написать, чтобы обеспечить:
- , когда DLL компилируется в режиме выпуска, она будетбыть правильно загруженным EXE-файлом, скомпилированным в режиме выпуска или отладки (первый приоритет)
- , если DLL-библиотека скомпилирована в режиме отладки, она также будет правильно загружена EXE-файлом, скомпилированным в режиме отладки.
Сегодня у меня есть собственная C ++ DLL, которая загружается и прекрасно работает в режиме DLL-релиз / EXE-релиз.DLL загружается, но не работает нормально (вызовы функций возвращают неожиданные результаты) в режиме DLL-релиза / EXE-релиза (и это огромная проблема, потому что мешает мне отладить EXE, что является моей главной целью) и вылетаетповреждение кучи в режиме DLL-debug / EXE-debug.
Я знаю, что существует проблема, связанная с CRT, которая требует CRT-изоляции между DLL и EXE.Обычно эта проблема решается за счет того, что операторы new / new [] / delete / delete [] закрываются в DLL и заключаются в них с помощью функций create () / release (), которые позволяют создавать динамические объекты EXE.
Мой вопрос: перед тем, как начать перефакторинг всего своего кода в этом направлении, нужно ли что-то еще сделать, чтобы избежать подобных проблем?CRT-изоляция, вероятно, исправит мою ошибку DLL-debug / EXE-debug, но я не уверен, что это решит проблему DLL-release / EXE-debug.
Есть подсказка?Кто-нибудь уже сталкивался с этой проблемой?
Спасибо, Ал.