Windows Server 2003 32位机器应用程序可以用于Windows Server 2008 64位机器吗?

问题描述:

我正在使用Windows Server 2003 32位机器。使用该机器,我创建了一个COM组件,并在另一个应用程序中使用它并具有一个EXE文件。Windows Server 2003 32位机器应用程序可以用于Windows Server 2008 64位机器吗?

现在我将该EXE复制到安装了Windows Server 2008(64位)的另一台计算机。

当我尝试运行该EXE时,它显示“调试错误:此应用程序需要运行时并以不寻常的方式终止”。

是位(32位与64位)兼容性的原因呢?我需要在Windows Server 2008计算机上运行此功能?

+0

请添加* REAL *错误消息。这是一个非常不可能的 – MSalters 2009-06-15 11:00:57

+2

这个问题以何种方式不同于http://*.com/questions/981447/debug-error-runtime-needed-for-name-exe-occurs-while-cusing-com-in- vc-proje/985788#985788? – eran 2009-06-15 12:41:12

+0

没有两个都是类似的坚果我的问题没有纠正...这就是我试图以各种可能的方式。,........ – Cute 2009-06-15 13:35:30

当你编译你的应用程序时,你需要确保你编译它为32位。默认情况下,Visual Studio编译为“Any”。这导致您的应用程序的某些部分是32位并使用64位DLL。

它应该有效,感谢WOW64。 您编译为调试版本还是发行版本? 它可以找到你使用的所有参考?

Server 2008内置的.NET框架是v3.0。你的应用程序是否需要.NET v3.5?如果是的话,你会是您使用的开发环境需要在Server 2008中

http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

安装.NET 3.5再发行组件包?这听起来像您的项目配置为使用C++运行时DLL的未安装在目标框中的版本。

在您的开发环境中应该有一个VC_Redist.exe,您可以在目标框上复制并执行以安装必要的运行时程序集。

或者转至项目,EXE和DLL文件,并确保“运行时库”项目属性 - > C/C++下设置 - >代码生成页面设置为无DLL选项之一(/MTd或/ MT)。这将绕过在目标PC上安装单独运行时的需要,但会使您的EXE和DLL更大一些。