Как импортировать C ++ Legacy DLL в приложение C # UWP без Windows Runtime Component - PullRequest
0 голосов
/ 24 октября 2019

У нас есть требование импортировать устаревшую dll C ++ в приложение CW UWP и обращаться к методам внутри классов c ++. У нас нет исходного кода, поэтому мы не можем использовать компонент времени выполнения Windows.

Пожалуйста, дайте мне знать, как я могу импортировать c ++ dll в универсальное приложение Windows Visual C #.

Я могу добавить dll в качестве ссылки в приложении Visual C ++, но не могу сделать это в приложении Visual C # uwp. Я попытался dllimport, но это бросает dll не найдено исключение.

1 Ответ

0 голосов
/ 24 октября 2019

Во-первых, UWP не может импортировать устаревшую C ++ dll только с помощью DLLImport.

Если вы хотите импортировать унаследованные функции c ++ в C #, первое предложение - обернуть эту логику C ++ с помощью компонента WinRT.

И если вы хотите PInvoke dll, вы можете выполнить следующие шаги (Вы можете обратиться к этому thread ): Во-первых, добавьте dll в ваш проект UWP, убедившись, что вы установили его типкак ' content '. Затем в правильном файле cs, используя DllImport для PInvoke dll.

Кроме того, вы должны убедиться, что ваша dll не использует запрещенные API в WinRT. Вы можете проверить это с помощью опции компиляции / ZW для dll. Существует аналогичная нить , вы можете сослаться на нее.

...