2012-01-23 37 views
2

我想在Windows 8 Metro應用程序中使用Boost C++,並且無法通過Windows 8開發人員預覽版中的Visual Studio 11獲取在Windows 8上構建的庫。我相信這是由於VS 11目前有限的開箱即用功能。如何在Windows 8 Developer Preview上構建Boost C++?

最新版本的Boost(1.48.0)不附帶安裝程序。

有沒有人有解決方案?

如果答案是建立在Windows 7和傳輸上,我該如何做到這一點?

加速C++下載:http://www.boost.org/users/download/ 加速C++入門:http://www.boost.org/doc/libs/1_48_0/more/getting_started/windows.html

+2

你究竟如何構建它?請注意,Win32 API對於Metro應用程序來說是非常有限的,所以一些Boost庫可能根本無法生成。你應該能夠挑選那些你想要的,但是(只要他們不使用任何受限制的API)。 –

+0

我懷疑需要更改Boost才能工作的許多/大部分內容都是簡單地替換API--比如用CreateFileEx替換CreateFile等。 –

+0

@LarryOsterman:這不是'CreateFile2'嗎?看到無理的不兼容情況,我有點震驚。另一個:「LoadPackagedLibrary」函數是LoadLibraryEx的簡化版本,Metro風格的應用程序只能使用LoadPackagedLibrary加載打包模塊,桌面應用程序不能使用LoadPackagedLibrary。 – MSalters

回答

3

地鐵庫和桌面庫是不同的東西。地鐵圖書館受到嚴格限制。您可以在Windows 7上構建庫並將其手動安裝到您的系統上,但這並不意味着您可以在Metro應用程序的系統上使用它,前提是系統調用Metro不允許。

而不是「所有的助推器」,你會最好的嘗試得到你需要的部分工作。如果您沒有使用Boost來處理文件,那麼您認爲該文件訪問現在必須是異步的,並且必須通過API來確保您的Metro應用程序已經聲明瞭正確的功能,等等。當然,如果您使用C++ 11中的Boost部分(例如shared_ptr),則可以節省很多麻煩並使用C++ 11版本。

+0

凱特,我決定堅持你的回答,只是抓住我需要的部分,直到我可以進一步探索已有的圖書館。謝謝你挽救我的頭痛。 – AetherMass

相關問題