Исключение при загрузке библиотеки 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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