Исключение при загрузке библиотеки C# во дополнительный поток в C++ MFCC++

Программы на C++. Форум разработчиков
Anonymous
Исключение при загрузке библиотеки C# во дополнительный поток в C++ MFC

Сообщение Anonymous »

У меня есть консольное приложение .NET Framework 4.8 и тестовый проект в той же платформе на C#, которые используют некоторые dll со следующей структурой:
Изображение
The c++ dll находится в MFC.
Проблема заключается в следующем:
Сценарий A -> Если я запускаю тест dll, все dll зависимостей загружаются правильно (я вижу их из модулей в VS), и в основном потоке CCC.dll я может правильно выполнить метод в DDD.dll, который реализован в EEE.dll.
Сценарий B -> Если я вызываю тот же метод из рабочего потока CWinThread, когда я вызываю тот же метод в DDD.dll, у меня возникают следующие исключения:

Код: Выделить всё

Microsoft C++ exception: EEFileLoadException at memory location 0x000000A6FD9FA230

Could not load file or assembly 'DDD.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified
Также в этом случае, если я проверю загруженные модули в VS, я увижу, что DDD.dll и EEE.dll загрузился правильно. Я не понимаю, почему он пытается загрузить DDD.dll еще раз (и почему не находит его).
Я пытался использовать AFX_MANAGE_STATE(AfxGetStaticModuleState()); в заголовке моего метода, где я вызываю метод в DDD.dll, но это не решает мою проблему.
Сценарий C -> Если я запускаю сценарии A и B из консольного приложения, все работает нормально, и у меня нет исключений.

Подробнее здесь: https://stackoverflow.com/questions/787 ... d-in-c-mfc

Вернуться в «C++»