Из приложения C # (Visual Studio 2008) я вызываю win32 dll, используя DllImport. Все отлично работает в Windows XP. Однако, когда я использую те же exe и dll в Windows 7, win32 dll не загружается. Нужно ли мне писать какой-либо дополнительный код для вызова Win32 DLL из Windows 7?
Перед сборкой программы на C # убедитесь, что в Visual Studio Configuration Manager вы выбрали «x86», а не «любой процессор» в качестве платформы. Если выбран какой-либо ЦП, ваше приложение C # запускается как 64-битный процесс в Windows 7 и пытается загрузить 32-битную DLL win32 в 64-битный процесс, который завершится с ошибкой, как объясняется здесь и здесь .
Является ли ваш Windows 7 64-битным?
. Вы отмечаете .NET exe как AnyCPU?
Если ответ «да» на вышеупомянутый вопрос, вам нужно пометить .exe как x86 черезДиспетчер конфигурации в Visual Studio.