COM:convert';常量GUID*';施工图* 我正在从VS到MIWW C++移植一些代码。我代码中的一个语句是 CFactoryTemplate g_Templates[1] = { {&CLSID_SystemClock, CSystemClock::CreateInstance} }; int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);

COM:convert';常量GUID*';施工图* 我正在从VS到MIWW C++移植一些代码。我代码中的一个语句是 CFactoryTemplate g_Templates[1] = { {&CLSID_SystemClock, CSystemClock::CreateInstance} }; int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);,c++,visual-studio,com,mingw,C++,Visual Studio,Com,Mingw,我在第一个语句中遇到以下错误 错误:无法将“const GUID*{aka const\u GUID*}”转换为“const” 初始化中的WCHAR*{aka const WCHAR_t*} 我对此完全感到困惑。我做了一点调查,发现 CFactoryTemplate是combase.h中的一个类。如果有必要,我的项目也支持UNICODE。关于如何解决这个问题有什么建议吗?您的代码-您说您正在移植的是错误的,您需要为CFactoryTemplate提供不同的参数,编译器错误证明了这一点。在这里,您

我在第一个语句中遇到以下错误

错误:无法将“const GUID*{aka const\u GUID*}”转换为“const” 初始化中的WCHAR*{aka const WCHAR_t*}

我对此完全感到困惑。我做了一点调查,发现
CFactoryTemplate是
combase.h
中的一个类。如果有必要,我的项目也支持UNICODE。关于如何解决这个问题有什么建议吗?

您的代码-您说您正在移植的是错误的,您需要为CFactoryTemplate提供不同的参数,编译器错误证明了这一点。在这里,您将找到一些初始化此类实例数组的示例代码(您不需要填写所有字段):


Hans Passant还为您提供了另一个示例

您的代码-您说您正在进行的移植是错误的,您需要为CFactoryTemplate提供不同的参数,编译器错误证明了这一点。在这里,您将找到一些初始化此类实例数组的示例代码(您不需要填写所有字段):


另外,Hans Passant给了您另一个示例

m_Name成员是第一个,它是一个字符串。与比较。我不明白-你能解释一下我应该在哪里寻找m_Name使用
{L“SomeName”,&CLSID_SystemClock,CSystemClock::CreateInstance}
m_Name成员是第一个,它是一个字符串。与比较。我不明白-你能解释一下我应该在哪里寻找m_name use
{L“SomeName”&CLSID_SystemClock,CSystemClock::CreateInstance}
// 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]);