Я видел нескольких людей с аналогичной проблемой, но до сих пор ни один из этих исправлений не работал.Не удается запустить C++ clr dll из C# - Dll Unloaded?
У меня есть приложение C# (формы Windows) и/я пытаюсь использовать dll C++ clr. Кажется, что dll загружается нормально, я могу создать и запустить приложение, однако, если я вызову в dll, программа выдает исключение FileNotFound «Не удалось загрузить файл или сборку« MyLibrary.dll »или одну из его зависимостей. не найден. ":" MyLibrary.dll ".
Последняя ошибка 1008, Error_No_Token
библиотека DLL находится в папке с ехе.
Я изучал вещи с помощью peverify и ildasm, но не нашел там никаких проблем.
Я побежал зависимость ходок на нее и увидел эту необычную последовательность в журналах:
Разгрузка «MYLIBRARY.DLL» по адресу 0x00007FFB93400000.
LoadLibraryExW ("C: \ source \ tools \ ToolItemProj \ ToolItem \ ToolItem \ bin \ x64 \ Debug \ MyLibrary.dll", 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) возвращает NULL. Ошибка: указанный модуль не найден (126).
Я запустил ProcMon и придумал несколько вариантов, большинство из них преуспевают, но QuerryAllInformation имеет ошибку BufferOverflow и CreateFileMapping не удалось (один раз) с FileLockedWithOnlyReaders (Затем он снова запущен и преуспел). Создание INI также показалось неудачным с NameNotFound.
Похоже, что он выгружает DLL во время выполнения из-за переполнения буфера. Но как я его отслеживаю? У кого-нибудь есть опыт?
Обычно «Указанный модуль не найден» предлагает некоторые библиотеки DLL. Правильно ли установлен ваш vcredist (x64)? Является ли dll C++ зависящим от чего-либо, что вы могли бы забыть поставить под своим каталогом сборки или поисковым путем? Кроме того, C++ dll скомпилирована в x64? – evertqin