我正在尝试将一些现有代码移植到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以查看它是否适合他们。
感谢。
答案 0 :(得分:0)
是的,我也看到了这一点,所以看来这是“按设计”。
基本上,如果API未列出on MSDN in the list of supported COM/Win32 APIs,则它不是Windows Phone 8上支持的API。看起来只支持combaseapi.h
标头。
_com_ptr_t<T>
并且它的朋友不在列表中......