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 riid
iç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 CLRCreateInstance
diğ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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin