#眉標=.NET #副標=大內高手 #大標=.NET CLR Hosting簡介 #作者=文/蔡學鏞 -----box----- #程式1 class MyHostControl : public IHostControl { public: HRESULT __stdcall GetHostManager( REFIID riid, void **ppObject); }; HRESULT __stdcall MyHostControl::GetHostManager( REFIID riid, void **ppObject) { if (riid == IID_IHostMemoryManager) { MyHostMemoryManager *pMemMgr = new MyHostMemoryManager(); *ppObject = (IHostMemoryManager *)pMemMgr; return S_OK; } else if (riid == IID_IHostAssemblyManager) { // 類似上面的作法 } *ppObject = NULL; return E_NOINTERFACE; // 找不到該Manager } -----end----- -----box----- #程式2 ICLRRuntimeHost *pCLR = NULL; HRESULT hr = CorBindToRuntimeEx( L"v2.0.40103", //選擇版本為2.0.40103 L"wks", // 選擇Build Type為Client STARTUP_CONCURRENT_GC, CLSID_CLRRuntimeHost, IID_ICLRRuntimeHost, (PVOID*) &pCLR); -----end----- -----box----- #程式3 MyHostControl *pHostControl = new MyHostControl(); -----end----- -----box----- #程式4 pCLR->SetHostControl((IHostControl *)pHostControl); -----end-----