微軟推出 Visual Studio 2008 Express Edition 之後(正確來說,含 SP1),在去年底抓下來試試看。比較起 Visual Studio 2005 Express Edition,它把 Platform SDK 也包進來了,而且離線安裝的版本就是一個映像檔,抓下來就可以裝 Visual C++,Visual Basic 跟 Visual C#,算是很方便了。也因此,很久沒在 Windows 上寫 wxWidgets 的程式了,最近想些東西,因此就拿 wxWidgets-2.8.9 + Visual Studio 2008 Express Edition + DialogBlocks 4.28 這樣子的組合來玩。
DialogBlocks 4.28 已經支援 Visual Studio 2008 Express C++ ,因此在偵測環境上都不是問題,也可以順利的編出函式庫。根據wxWidgets的完美伴侶以及wxWidgets的完美伴侶(2),Visual Studio Express Edition 跟 wxWidgets 的組合使用是不錯的。其實只有兩個問題要解決:
1. 編譯出來的程式拿到其他電腦執行時,可能會遇到缺少 DLL 的問題
2. Manifest 檔的問題
關於第一點,可檢查 C:\WINDOWS\WinSxS 底下的內容。以 Visual Studio 2008 Express C++ 所編出來的原生程式(以 Win32 APIs 開發的,wxWidgets 底層就是 Win32 APIs),會需要 x86_Microsoft.VC90........ 這類的資料夾存在(當然還在裡面的 msvcp90.dll 跟其他的 dll)。如果漏了這些東西,則需要安裝 Microsoft Visual C++ 2008 SP1 可轉散發套件 (x86),MSDN 上面有解釋的很清楚:「對於用 Visual C++ Express 所建置的應用程式,建議您使用 Visual C++ 可轉散發套件 (vcredist_x86.exe) 轉散發 Visual C++ 程式庫。Visual C++ Express 不會安裝這個套件,但您可以從 Microsoft Visual C++ 2008 可轉散發套件 (x86) 下載。」。因為我用的是 Visual Studio 2008 Express Edition SP1,所以下載 Microsoft Visual C++ 2008 SP1 可轉散發套件 (x86),原則上安裝之後就行了。
第二點更是太有趣了,完全是我自己搞烏龍。DialogBlocks 提供了兩種編譯應用程式的方式,一是直接使用 cl.exe 來編譯,一種是產生 Visual Studio Project Files,再把它丟給 Visual Studio 去處理。如果使用第一種方式,就會遇到 Manifest 的問題,如果使用第二種方式,就沒問題。而且這裡跟這裡也都有解釋如何將 Manifest 嵌入到執行檔當中。
所以這篇文章寫的落落長,連自己都不知道重點在哪裡了…Orz
留言列表