微軟推出 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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 zxlin 的頭像
    zxlin

    微笑面對

    zxlin 發表在 痞客邦 留言(0) 人氣()