我正在将一些代码从VS移植到mingw C ++。我的代码中的一个陈述是
CFactoryTemplate g_Templates[1] = {
{&CLSID_SystemClock, CSystemClock::CreateInstance}
};
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
我在第一个语句
上收到以下错误错误:无法转换' const GUID * {aka const _GUID *}'到#const; WCHAR * {aka const wchar_t *}'在初始化
我对此感到十分困惑。我做了一点调查并注意到了
CFactoryTemplate是combase.h
中的一个类。如果重要的话,我的项目也启用了UNICODE。有关如何解决此问题的任何建议吗?
答案 0 :(得分:4)
你的代码 - 你说你移植是错误的,你需要为CFactoryTemplate提供不同的参数,编译器错误证明了这一点。在这里,您将找到一些示例代码来初始化此类的实例数组(您不需要填充所有字段):
// list of class ids and creator functions for class factory
CFactoryTemplate g_Templates[2]=
{ { L"Gargle filter" // CFactoryTemplate.m_name
, &CLSID_Gargle // CFactoryTemplate.m_ClsID
, CGargle::CreateInstance // CFactoryTemplate.m_lpfnNew
, NULL // CFactoryTemplate.m_lpfnInit
, &sudGargle // CFactoryTemplate.m_pAMovieSetup_Filter
}
, { L"Gargle filter property page"
, &CLSID_GargProp
, CGargleProperties::CreateInstance
}
};
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
来自https://msdn.microsoft.com/en-us/library/aa451506.aspx
Hans Passant也给了你其他的例子