1

ブログhttp://blogs.msdn.com/b/ieinternals/archive/2012/03/23/understanding-ie10-enhanced-protected-mode-network-security- addons-cookies-metro-desktop.aspx

、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 ;、ファイルに入れる必要があります。そのステートメントを入れた後、コンパイルします。

4

1 に答える 1