Я пишу программу, использующую C# и C++ (C# вызывает C++). В инете люди говорят, что есть конфликт с 64-битной и 32-битной сборкой, но я поставил все проекты либо на win32, либо на x86. См. изображение ниже.
Я также попытался установить приложение С# на «любой процессор», но результат тот же. На изображении ниже показана ошибка, которую я получаю.
По рекомендации HansPassant я изменил свои настройки C# на prefer 32-bit
, это приводит к той же ошибке.
Кто-нибудь знает решение моей текущей проблемы?
1 ответ
Сначала вам нужно определить расположение библиотек x86 и x64:
x86path = (Path.GetDirectoryName(Assembly.GetAssembly(GetType()).CodeBase) + @"\x86\").Replace("file:\\", ""); x64path = (Path.GetDirectoryName(Assembly.GetAssembly(GetType()).CodeBase) + @"\x64\").Replace("file:\\", "");
Затем, чтобы использовать нужную библиотеку и правильно вызвать ее, попробуйте пакет InteropDotNet: https://github. com/AndreyAkinshin/InteropDotNet
Github: https://www.nuget.org/packages/InteropDotNet/
Возможно, вы не захотите использовать весь пакет, но у него есть приятная функция, которая генерирует код для вызова собственной библиотеки.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.