、DLLRegisterと同じcppファイルで以下を定義しました
DEFINE_GUID(CATID_AppContainerCompatible, 0x59fb2056,0xd625,0x48d0,0xa9,0x44,0x1a,0x85,0xb5,0xab,0x26,0x40);
STDAPI DllRegisterServer(void)
{
// let ATL handle this
HRESULT hr = _AtlModule.DllRegisterServer();
ICatRegister* pcr = NULL ;
hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr);
if (FAILED(hr))
return hr;
if (SUCCEEDED(hr))
{
// Register this category as being "implemented" by
// the class.
CATID rgcatid[1] ;
rgcatid[0] = CATID_AppContainerCompatible;
hr = pcr->RegisterClassImplCategories(CLSID_ABC, 1, rgcatid);
}
このコードをコンパイルしようとすると、次のエラーが発生します。
unresolved external symbol CATID_AppContainerCompatible
なぜこれが来るのか分かりません。右クリックして CATID_AppContainerCompatible 定義に移動できます。提案はありますか??
問題を解決しました。DEFINE_GUID は GUID を extern として宣言するのでconst GUID CATID_AppContainerCompatible ;
、ファイルに入れる必要があります。そのステートメントを入れた後、コンパイルします。