【发布时间】:2015-11-27 13:21:10
【问题描述】:
我想要做的:在win7 上创建一个64 位DLL,它与包括OLE32.dll 在内的Windows API 交互。
我得到了什么:
我目前卡住了。我下载了 Visual Studio 2015 社区版。我试图在那里创建一个 DLL,并在创建时生成了所有内容,但没有 dll。该程序没有抱怨,一切都按照教程设置,但没有 dll 文件。
所以我跳过了这个并下载了 Eclipse CDT。我使用 Visual C 工具链进行设置,并在出现小问题后生成了我的 DLL。所以我使用 Java 启动它,但它抱怨(我使用 JNA 进行集成)并且它接缝我有一个 32 位 DLL。
所以我搜索了网络并阅读并做了一些事情,但我完全迷失了。由于 Visual Studio 2010 Express 版没有 64 位编译器,我什至不确定 Visual Studio 的社区版这次是否支持 64 位 dll。
我还安装了 Windows SDK v7.1。我链接到一个库文件 ole32.dll。它包含我需要的 CoCreateInstance 方法。我必须手动添加它才能让编译器拾取它。如果我切换到 64 位 dll 版本,编译器会抱怨 CoCreateInstance 方法无法链接。
所以基本上我在这里迷路了。网络上的一个消息来源为 2010 Express 无法创建 x64 DLL 提供了解决方法,结果表明提示正在获取 windows SDK,因为它带有编译器。
我还注意到 CDT 使用 Visual Studio 10 文件,所以我猜它正在使用这个编译器。
我将 /machine:64 选项设置为编译器和链接器。但是链接器仍然抱怨编译器的 obj 文件是 32 位的。
有什么想法吗?
[更新]
编译器打印以下行,因此基本上它无法编译 64 位版本。知道如何更换它吗?如前所述,它使用 Visual Studio 10 文件夹,但我也有一个 Visual Studio 12 和 14 文件夹。
cl : 命令行警告 D9002 : 忽略未知选项 '/machine:x64'
【问题讨论】:
标签: c++ eclipse dll 64-bit eclipse-cdt