error C2664: cannot convert 'IDWriteFactory2 **' to 'IUnknown **'
以下mwe基本上是从此示例中提取的。 完整的示例可以编译并正常工作,但是我的mwe不能与Visual Studio 2013一起编译,我不知道为什么不这样做。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <dwrite_2.h> #include using namespace std; void main() { IDWriteFactory2* m_spdwriteFactory; DWriteCreateFactory( DWRITE_FACTORY_TYPE_SHARED, __uuidof( IDWriteFactory2 ), &( m_spdwriteFactory ) ); } |
错误消息显示为:
------ Build started: Project: Test, Configuration: Debug x64 ------
1> Source.cpp
1> Source.cpp(16):错误C2664:'HRESULT DWriteCreateFactory(DWRITE_FACTORY_TYPE,const IID&,IUnknown **)':无法将参数3从'IDWriteFactory2 **'转换为'IUnknown **'
1>指向的类型不相关; 转换需要reinterpret_cast,C样式强制转换或函数样式强制转换
==========构建:0成功,1失败,0最新,跳过0 ==========
blockquote>
您需要将m_spdwriteFactory强制转换为IUnknown **才能修复编译错误。 请参阅此处的示例:http://msdn.microsoft.com/zh-cn/library/windows/desktop/dd368040(v=vs.85).aspx