Как скомпилировать C DLL для 64 бит с Visual Studio 2010? - PullRequest
6 голосов
/ 17 июня 2010

У меня есть DLL, написанная на C в исходном коде. Это код для General Polygon Clipper (на случай, если вы заинтересованы). Я использую его в проекте C # через оболочку C #, предоставленную на домашней странице. Это идет с предварительно скомпилированной DLL.

После перехода на 64-разрядную машину разработки с 64-разрядной версией Visual Studio 2010 и Windows 7 приложение больше не будет работать. Это ошибка, которую я получаю:

Была предпринята попытка загрузить программу с неверным форматом.

Это из-за DLLImport 32-битного gpc.dll, как я понял из материалов, найденных в сети.

Я предполагаю, что все это исчезнет, ​​если я перекомпилирую DLL в 64-битную версию, но не могу понять, как это сделать. Мои навыки C являются базовыми, так как я могу написать программу на C с помощью инструментов GNU, но не имею опыта работы с различными компиляторами / процессорами / IDE и т. Д.

Полагаю, я мог бы перенести это на C #. Под этим я подразумеваю, что доверяю себе на самом деле осуществить это. Но я бы предпочел не делать этого, поскольку это - много работ, которые я бы предпочел, чтобы компилятор делал для меня;)

1 Ответ

6 голосов
/ 17 июня 2010

Это может быть так же просто, как создать новую платформу:

  • открыть страницы свойств проекта (ALT + ENTER)
  • выбрать платформу x64 в выпадающем спискеменю в правом верхнем углу
    • если платформа еще не существует, создайте новую
  • перестройте
    • убедитесь, что вы проверяете правильностьартефакты при сборке, поскольку теперь у вас, вероятно, другой выходной каталог.
...