错误 C2664:无法将'IDWriteFactory2 **'转换为'IUnknown **'
error C2664: cannot convert 'IDWriteFactory2 **' to 'IUnknown **'
下面的mwe基本上是从这个例子中提取的。完整的示例编译并运行良好,但是我的mwe没有使用Visual Studio 2013进行编译,我不明白为什么不这样做。
#include <dwrite_2.h>
#include <atlbase.h>
using namespace std;
void main()
{
IDWriteFactory2* m_spdwriteFactory;
DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED,
__uuidof( IDWriteFactory2 ),
&( m_spdwriteFactory )
);
}
错误消息显示:
------生成已启动:项目:测试,配置:调试x64------
1>来源.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跳过==========
您需要将m_spdwriteFactory强制转换为IUnknown**以修复编译错误。请参阅此处的示例:http://msdn.microsoft.com/en-us/library/windows/desktop/dd368040(v=vs.85).aspx
相关文章:
- C2664 无法从'initializer list'转换参数
- 了解错误 C2664:无法转换参数 1
- 错误 C2664:无法从'NvPhysicalGpuHandle'转换参数 1
- C2664: 显式强制转换运算符未按预期强制转换
- 错误 C2664:"errno_t wcstombs_s(size_t *,字符 *,size_t,常量 wchar_t *,size_t)":无法转换参数 4
- 错误C2664:无法转换参数错误
- 在集合中转换为小写 C++ 错误 C2664
- 错误 C2664:无法将参数 1 从 'int' 转换为 'int []'
- 错误 C2664:"发送":无法将参数 2 从"服务器问候语"转换为"常量字符 *"
- 错误C2664:无法转换参数(指纹传感器检测)
- 错误 C2664:'CComboBox::InsertString':无法将参数 2 从 'const char [4]' 转换为 'LPCTSTR'
- 错误 C2664:'VariantCopy':无法将参数 2 从 'const VARIANT *' 转换为 'VARIANTARG *'
- 错误 C2664:'cvSaveImage':无法将参数 2 从 'cv::Mat' 转换为 'const CvArr *'
- 错误 C2664:'auxDIBImageLoadW':无法将参数 1 从 'LPSTR' 转换为 'LPCWSTR'
- C++错误 C2664:无法将"mw::世界"转换为"mw::世界"
- 错误 C2664:无法将参数 1 从"int [][]"转换为"int",错误 C2087:缺少下标
- 可视C++:错误 C2664:'GetModuleFileNameW':无法将参数 2 从 'char [260]' 转换为'LPWCH'
- 错误 C2664:show_info:无法将参数 2 从 'char [20]' 转换为"字符"
- 错误 C2664:无法将'IDWriteFactory2 **'转换为'IUnknown **'
- C2664 无法将参数 1 从 'const char *' 转换为 'Node*'