x86和x64中的编译项目有问题

时间:2011-01-27 07:41:48

标签: c# 64-bit x86 compilation 32bit-64bit

我使用必须在64位Windows中运行的应用程序,并且我使用应该在32位仿真模式下运行的OCX控件。我可以在Windows窗体控件库中嵌入此控件,然后将此库的引用添加到主应用程序,以便为此控件设置另一个仿真模式,为整个应用程序设置另一个仿真模式,但它会产生另一个问题。在这种情况下,我收到一个错误“抛出了类型InvalidActiveXStateException的异常”。我尝试将此Windows窗体控件库与也在x86中运行的项目一起使用,一切正常。

您知道以哪种方式运行包含两个或更多项目的应用程序,一个项目将在x86中运行,一个在x64中运行? (正确知道每个项目处于另一种模式时,它找不到一些组件)

2 个答案:

答案 0 :(得分:4)

您不能在同一进程中混合使用32位和64位代码。如果您绝对必须从64位应用程序运行此32位控件,那么您需要将其作为进程外服务器执行。虽然这可能是可行的,但我不认为这是微不足道的。

无论如何,你可能不需要这样做。由于64位Windows运行32位应用程序,您可以确保您的应用程序定位 x86 而不是 AnyCPU ,然后它将在64位Windows上运行。

答案 1 :(得分:0)

<击> 我不太确定这是否是您正在寻找的,但您可以为您当前的任何项目创建两个项目。

源代码存在于其中一对中,依此类推,X64或X86使用Visual Studio符号链接添加所有文件。

然后,您不需要维护重复的代码,您只需要为X86配置一个项目,为X64配置一个项目,依此类推。

当您尝试添加现有项目时会创建符号链接,然后按箭头选择“添加链接”。

我发现这不是你的解决方案(而且几乎是错误的)。感谢评论者。