3

I am trying to compile my apps (which uses 3rd party libraries) for the x64 platform. However selecting x64 from Build Configuration Manager from my VS2008 Pro doesn't seem to work. The binary does get created but my client wasn't able to get it to run on x64.

I wonder if the 3rd party DLLs could be the cause. Anyone has any idea on this?

4

5 回答 5

3

Do you have x64 versions of the third party libraries? If not you are out of luck. A process must either be fully x86 or x64, you can't mix and match libraries. If the libraries are DLLs then you still need the export libraries from an x64 build.

In what way does selecting the x64 configuration in VS not work?

Updated: If your app is .NET and architecture neutral, then it will be loaded as 64 bit on 64 bit OS'es. However, if it relies on 32 bit DLLs then this will fail at run time. You can force your exe to always load 32 bit using the corflags utility.

于 2008-10-04T16:39:19.917 回答
1

设法查明问题的根源。这是源代码混淆工具(Intellilock 1.1.0.4)中的设置(加密 IL 代码)之一,导致二进制文件无法在 x64 环境中运行。

禁用此设置可解决此问题。

于 2008-10-12T11:31:05.967 回答
1

正如罗伯·沃克所说。您可以通过在 x64 机器上使用 SysInternals 的“depends”程序来了解更多信息。

于 2008-10-04T18:54:32.920 回答
0

我的应用程序没有安装程序。我以 .NET2.0 作为先决条件将其创建为“便携式应用程序”。

我已向供应商发布了相同的请求。如果他们有 x64 位,仍在等待他们恢复。

与此同时,我正在购买 x64 Vista 的副本以亲自测试它。我不能牺牲我的用户来为我测试这个。一旦我有新的更新,我会保持这个线程发布。

谢谢。

于 2008-10-07T13:31:01.463 回答
0

“从我的 VS2008 Pro 的构建配置管理器中选择 x64 似乎不起作用”
我不确定您为什么会得到二进制文件,但请记住默认情况下未安装 x64 工具。返回并重新运行 VC2008 安装程序,进行自定义安装,并在树的 VC++ 位下,确保选中 64 位编译器的复选框。如果不是,请检查并运行安装。然后尝试你的构建。

您确实需要 3rd 方 dll 的 64 位版本,并且您确实需要正确获取所有包含和 lib 路径以及正确的输出文件夹,但安装该工具是第一步。

于 2008-10-04T19:13:12.820 回答