2013-01-02 186 views
1

我試圖移植一些現有的代碼到WP8,並遇到了問題。 我正在移植的代碼使用了一個智能指針,它在comdef.h中定義,但由於某種原因,當我嘗試幷包含comdef.h時,出現以下錯誤。問題,包括comdef.h

comdef.h(25):致命錯誤C1083:無法打開包含文件:「olectl.h」

我理解錯誤的意思,似乎不存在「olectl.h」痕跡的WP8 SDK在我的機器上包含路徑。是否有其他人有這個問題,我試過「修復」我的安裝「Visual Studio 2012 Express for Windows Phone」

我發現一些代碼似乎包括comdef.h並已得到周圍的失蹤宏問題這篇文章末尾的鏈接正在討論不使用宏,並明確使用宏將擴展到的代碼。 (這裏是代碼,做什麼,我想:https://devel.nuclex.org/framework/browser/graphics/Nuclex.Graphics.Native/trunk/Source/Rasterization/Direct3D11/Direct3D11Api.h?rev=1782

有其他人遇到過,或者可能有人在SDK安裝嘗試包括comdef.h的地方,看它是否適用於他們。

丟失的宏鏈接: http://connect.microsoft.com/VisualStudio/feedback/details/751127/com-smartptr-typedef-causes-errors-when-used-in-winrt-build

感謝。

回答

0

是的,我也看到了,所以看起來這是「按設計」。

基本上如果API未列出on MSDN in the list of supported COM/Win32 APIs,那麼它是不是在Windows Phone 8支持的API看起來僅支持combaseapi.h頭。

_com_ptr_t<T>它的朋友不在名單上...