2013-09-24 45 views
1

我已經創建了一個使用Qt 4.8.4的應用程序,現在我必須將它分發到Windows 2000計算機上。我已經嘗試通過互聯網搜索關於它的清晰解釋,但是我無法確認Qt實際支持的Windows版本是什麼。我可以使用Qt 4.8.4爲Windows 2000進行部署嗎?

該應用程序在Windows XP(32和64位)和Windows 7上運行良好,但是當我嘗試在Windows 2000上啓動它時,我收到了衆所周知的錯誤「[Application name] .exe is not a有效的win32應用程序「,我想這個錯誤依賴於不支持的Windows版本。

該應用程序是一個「簡單」的應用程序,它只需要QtCore4.dll和QtGui4.dll作爲依賴關係。

如果可以幫助,我正在使用Qt 4.8.4和Qt Creator 2.7.1在Windows 7 64位機器上開發。如果我在工具 - >選項 - > Build &運行 - >套件 - >手動 - >桌面下,我將「Microsoft Visual C++編譯器10.0(x86)」作爲正在使用的編譯器。我是否必須選擇另一個,也許?

感謝您的任何答案。


編輯What I've done after reading @vahancho's answer

  • 從Qt Creator的 「移動」 的項目到Visual Studio 2010中,使用CMake的;
  • 安裝Visual Studio Express 2008(以這種方式啓用V90平臺工具集)
  • 從VS2010打開項目,然後進入項目屬性 - >配置屬性 - >常規並將平臺工具集更改爲V90;
  • 重新編譯項目;現在

,我試圖運行在虛擬機上編譯這樣的應用程序,安裝Windows 2000的,但我得到另一個錯誤,這一次:「程序輸入點DecodePointer不能位於動態鏈接庫KERNEL32.dll「。

+0

你是否在應用程序中發佈了'msvcp100.dll'和'msvcr100.dll'? – vahancho

+0

@vahancho:謝謝你的回覆。而不是,不知道他們。你能提供一個關於他們的目的的(非常短的)解釋嗎?謝謝... –

+0

@ BiG,你可以閱讀http://qt-project.org/doc/qt-4.8/deployment-windows.html#creating-the-application-package。我想你的目標Windows2000計算機上沒有安裝VisualStudio 10.0,所以你可能還需要分發VisualStudio庫。 – vahancho

回答

0

好的,一段時間過去了,但我想給出我的這個問題的明確答案。不幸的是,我所要求的是不可能的。 @ vahancho的答案是正確的,他指出的解決方案在大多數情況下都是正確的。但是,DecodePointer在Windows XP SP 2內核中是「包含」的,即使通過選擇VC++ 2008編譯器,也無法在較舊的Microsoft OS上編譯使用它的應用程序。

CodeProject上提供了this post的附加參考。 幸運的是,我的應用程序很簡單,可以讓我用舊的VB6重寫它:)

2

那麼,在一些調查後,我發現在Windows 2000上運行MSVC10應用程序是不可能的。您必須使用至多MSVC9(Visual Studio 2008)來構建它,或者使用VS2010多目標功能讓VC++ 2010使用VC++ 2008編譯器和庫。請參閱Microsoft Connect discussion

+0

非常感謝你的時間(以及寶貴的參考!),但我仍然無法使它工作。我列出了我所做的操作,作爲對我的問題的編輯,以及我得到的新錯誤。 也許有人可以進一步幫助我... –

相關問題