2009-06-15 63 views
0

我正在使用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://stackoverflow.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

回答

2

當你編譯你的應用程序時,你需要確保你編譯它爲32位。默認情況下,Visual Studio編譯爲「Any」。這導致您的應用程序的某些部分是32位並使用64位DLL。

0

它應該有效,感謝WOW64。 您編譯爲調試版本還是發行版本? 它可以找到你使用的所有參考?

0

安裝.NET 3.5再發行組件包?這聽起來像您的項目配置爲使用C++運行時DLL的未安裝在目標框中的版本。

在您的開發環境中應該有一個VC_Redist.exe,您可以在目標框上覆制並執行以安裝必要的運行時程序集。

或者轉至項目,EXE和DLL文件,並確保「運行時庫」項目屬性 - > C/C++下設置 - >代碼生成頁面設置爲無DLL選項之一(/MTd或/ MT)。這將繞過在目標PC上安裝單獨運行時的需要,但會使您的EXE和DLL更大一些。

相關問題