【问题标题】:How to compile a C DLL for 64 bit with Visual Studio 2010?如何使用 Visual Studio 2010 为 64 位编译 C DLL?
【发布时间】:2011-03-04 21:05:13
【问题描述】:

我有一个用 C 语言编写的源代码 DLL。这是General Polygon Clipper 的代码(如果您有兴趣)。我通过主页上提供的 C# 包装器在 C# 项目中使用它。这带有一个预编译的 DLL。

由于切换到具有 Visual Studio 2010 和 Windows 7 64 位的 64 位开发计算机,应用程序将不再运行。这是我得到的错误:

试图加载格式不正确的程序。

这是因为 DLLImport 使用 32 位 gpc.dll,这是我从网上找到的资料中收集的。

我认为如果我将 DLL 重新编译为 64 位,这一切都会消失,但我不知道该怎么做。我的 C 技能是基本的,因为我可以使用 GNU 工具编写 C 程序,但对各种编译器/处理器/IDE 等没有经验。

我相信我可以将它移植到 C#。我的意思是我相信自己能够真正做到这一点。但我不希望这样做,因为我希望编译器为我做很多工作;)

【问题讨论】:

    标签: c visual-studio-2010 dllimport 32bit-64bit


    【解决方案1】:

    这就像创建一个新平台一样简单:

    • 打开项目的属性页 (ALT+ENTER)
    • 在右上角的下拉菜单中选择平台 x64
      • 如果平台尚不存在,则创建一个新平台
    • 重建
      • 确保在构建时检查正确的工件,因为您现在可能有不同的输出目录。

    【讨论】:

    • x64平台不存在,如何新建?我在 VS2010 中有一个 C++/MFC 项目。我在项目设置中的任何地方都找不到平台 x64 或 0x86。
    • 对于 Visual Studio 2010 Express,不包括 64 位 SDK。你需要download it separately and install it。我遇到了太多问题,实际上能够在一台计算机上进行正确安装,这是偶然的。从那以后,我无法从头开始重复安装。我会检查 GCC(我认为它现在比 Visual 编译器工作得更好)。
    猜你喜欢
    • 2017-01-21
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多