2016-11-16 2 views
0

Я поместил dll в родной C++ как универсальную DLL в свой каталог проектов приложения C# UWP и установил контент для копирования всегда, когда он нашел его, а затем на следующий день внезапно ничего, постоянно получая:DLL неожиданно не загружается C# UWP

"не удается загрузить DLL 'AVEngine.dll': указанный модуль не может быть найден (исключение из HRESULT: 0x8007007e)."

Я звоню с:

[DllImport(DLLName, CallingConvention = CallingConvention.Cdecl)] 
private static extern int OpenForProcessing(); 

Я обеспечил соответствие конфигурации архитектуры и сборки config, я также проверил версии SDK (минимальные/целевые версии), я в тупике.

ответ

0

Используйте Dependency Walker, чтобы проверить зависимости вашего AVEngine.dll. Вероятно, некоторые из них отсутствуют, и из-за этого Dll не может быть загружен.

Лучше подходящий подход для раскрытия старой функциональности для вашего современного приложения C# UWP - обертка логики AVEngine.dll с использованием компонента WinRT. Затем вы можете ссылаться на этот компонент в приложении UWP. Может оказаться полезным статья "Use Existing C++ Code in a Universal Windows Platform App".

+0

Привет, Никита, спасибо за предложение, но теперь даже с компонентом C++ WinRT. Я получаю такое же FileNotFoundException. Действительно больно, все DLL, которые я использую, находятся в папке проекта, добавляются в решение, устанавливаются на контент и копируются всегда. Какие-либо предложения? Спасибо – Sixjac

+0

@SeanRyan Запустите [Process Monitor] (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx), чтобы узнать, какие файлы пытается загрузить ваше приложение. Вы должны увидеть, какие DLL предотвращают загрузку вашего AVEngine.dll. – Nikita

+0

спасибо, что я установил и побежал, однако я не мог видеть ничего, что явно показывало проблемы, его трудно прочитать, возможно, я должен научиться его использовать. Спасибо – Sixjac

Смежные вопросы