Как исправить проблему с 32/64 битами, возникающую при выполнении определенной строки кода в проекте .NET? - PullRequest
0 голосов
/ 15 октября 2018

Я работаю в Visual Studio 17, создавая проект .NET У меня возникают проблемы каждый раз, когда я пытаюсь вызвать функцию из файла DLL.Я использую комбинацию использования DllImport("PXCP.dll", EntryPoint:="XCP_InitializeCanChannel")> и использования правильных пространств имен в файлах .VB.После долгих поисков здесь и в других местах я определил, что это связано с битовым конфликтом x86 / x64.Я попытался устранить проблему с помощью следующих решений:

  • копирование / вставка их непосредственно в папки bin отладки / выпуска и исполняемый каталог
  • с добавлением .dll (32-битная и 64-битная) в соответствующих папках (SysWOW64 / System32)
  • Добавлено несколько путей в Project> Properties> References, которые содержат dll

Я продолжаю получать исключение при достижении функциииз DLL, о котором идет речь.«System.DllNotFoundException:« Невозможно загрузить DLL «Name.dll»: указанный модуль не может быть найден. »«

Иногда, когда я играю с настройками сборки, я получаю исключение »System.BadImageFormatException: «Была предпринята попытка загрузить программу с неверным форматом.» «

Есть ли что-то, что я мог пропустить, или что-то, что я могу сделать, чтобы попытаться обойти исключение?Я также хотел бы знать, если мне, возможно, придется переместить / импортировать файл .lib, который идет вместе с .dll.

Спасибо

...