Aracılığıyla paylaş


CLRCreateInstance İşlevi (.NET Framework)

Üç arabirimden birini sağlar: ICLRMetaHost, ICLRMetaHostPolicy veya ICLRDebugging.

Sözdizimi

HRESULT CLRCreateInstance(
    [in]  REFCLSID  clsid,
    [in]  REFIID     riid,
    [out] LPVOID  * ppInterface
);

Parametreler

clsid
[in] Üç sınıf tanımlayıcıdan biri: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy veya CLSID_CLRDebugging.

riid
[in] Üç arabirim tanımlayıcılarından (IID) biri: IID_ICLRMetaHost, IID_ICLRMetaHostPolicy veya IID_ICLRDebugging.

ppInterface
[out] Üç arabirimden biri: ICLRMetaHost, ICLRMetaHostPolicy veya ICLRDebugging.

İade Değeri

Bu yöntem, aşağıdaki belirli HRESULTs ve yöntem hatasını gösteren HRESULT hatalarını döndürür.

HRESULT Tanım
S_OK Yöntem başarıyla tamamlandı.
E_POINTER ppInterface null değeridir.

Açıklamalar

Aşağıdaki tabloda ve riidiçin clsid desteklenen birleşimler gösterilmektedir.

clsid riid
CLSID_CLRMetaHost IID_ICLRMetaHost
CLSID_CLRMetaHostPolicy IID_ICLRMetaHostPolicy
CLSID_CLRDebugging IID_ICLRDebugging

Aşağıdaki kod, üç arabirimin tümünü almak için nasıl kullanılacağını CLRCreateInstance gösterir:

#include <metahost.h>
#pragma comment(lib, "mscoree.lib")

ICLRMetaHost       *pMetaHost       = NULL;
ICLRMetaHostPolicy *pMetaHostPolicy = NULL;
ICLRDebugging      *pCLRDebugging   = NULL;
HRESULT hr;
hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost,
                    (LPVOID*)&pMetaHost);
hr = CLRCreateInstance (CLSID_CLRMetaHostPolicy, IID_ICLRMetaHostPolicy,
                    (LPVOID*)&pMetaHostPolicy);
hr = CLRCreateInstance (CLSID_CLRDebugging, IID_ICLRDebugging,
                    (LPVOID*)&pCLRDebugging);

CreateInterface işlevi için CLRCreateInstancediğer ad kullanılır. Hem hem CreateInterface de CLRCreateInstance işlevler birbirinin yerine kullanılabilir. Örnek:

HMODULE hModule = LoadLibrary(L"mscoree.dll");
CreateInterfaceFnPtr createInterface = (CreateInterfaceFnPtr)GetProcAddress(hModule, "CreateInterface");
HRESULT hr;
hr = createInterface(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&pMetaHost);
hr = createInterface (CLSID_CLRMetaHostPolicy, IID_ICLRMetaHostPolicy,  (LPVOID*)&pMetaHostPolicy);
hr = createInterface (CLSID_CLRDebugging, IID_ICLRDebugging,  (LPVOID*)&pCLRDebugging);

Gereksinimler

Platformlar: Bkz. Sistem Gereksinimleri.

Üst bilgi: MetaHost.h

Kitaplık: MSCorEE.dll dosyasına kaynak olarak eklenir

.NET Framework Sürümleri: 4'ten beri kullanılabilir

Ayrıca bkz.