问题包括comdef.h

时间:2013-01-02 00:21:02

标签: windows-phone-8

我正在尝试将一些现有代码移植到WP8并遇到问题。 我移植的代码使用了一个智能指针,该指针在comdef.h中定义,但由于某种原因,当我尝试包含comdef.h时,我收到以下错误。

comdef.h(25):致命错误C1083:无法打开包含文件:'olectl.h'

我理解错误意味着什么,似乎WP8 SDK中没有“olectl.h”的痕迹包含我机器上的路径。有没有其他人有这个问题,我已经尝试“修复”我的“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

感谢。

1 个答案:

答案 0 :(得分:0)

是的,我也看到了这一点,所以看来这是“按设计”。

基本上,如果API未列出on MSDN in the list of supported COM/Win32 APIs,则它不是Windows Phone 8上支持的API。看起来只支持combaseapi.h标头。

_com_ptr_t<T>并且它的朋友不在列表中......