Использование 32-битной библиотеки DLL на 64-битной машине - PullRequest
5 голосов
/ 19 апреля 2011

У меня есть старый проект, который использует 32-битную DLL.Это работает нормально на 32-битном процессоре, однако, когда я устанавливаю тот же проект на 64-битной ОС, он не работает.

Есть ли способ конвертировать 32-битную DLL в 64-битную?Есть ли альтернативное решение, чтобы заставить мою 32-битную DLL работать в 64-битной ОС?

1 Ответ

5 голосов
/ 19 апреля 2011

Ваша 32-битная DLL должна нормально работать на 64-битной машине, если она загружена в 32-битный процесс - попытка загрузить 32-битную DLL в 64-битный процесс не удастся.

Есливаш проект является приложением .Net (например, C #), тогда вы должны иметь возможность нацелить вашу сборку на x86, чтобы получить 32-битную рабочую корректировку dll:

  • Щелкните правой кнопкой мыши ваш проект в Visual Studioи выберите Свойства
  • . На вкладке Свойства проекта сборки убедитесь, что в раскрывающемся списке Цель платформы указано «x86» вместо «Любой ЦП»

Если целью платформы является «Любой ЦП»тогда ваш проект, как правило, будет нацелен на любую доступную платформу, то есть x64 в 64-битной ОС - это предотвратит загрузку вашей 32-битной dll.

Если ваш проект не является сборкой .Net, то эквивалентшаги, необходимые для выполнения вышеизложенного, будут другими.

В качестве альтернативы вы можете попытаться получить 64-битную версию вашей dll - если это dll, который вы создалиЗатем вам нужно будет перенести его на 64-битную версию самостоятельно.Если нет, то вы зависите от оригинальных поставщиков, предоставляющих 64-битную совместимую версию.

...