マネージドコード(CLR)を呼び出す

0x1 はじめに

C(++)からマネージドコード(CLR)を呼び出す手法を示す.

0x2 ソースコード

  • test.cs

0x3 実行

 csc /target:library .\test.cs 

0x4 備考

ここからメイン(?)

GUID

  • CLSID_CLRMetaHost : {9280188D-0E8E-4867-B30C-7FA83884E8DE}
  • IID_ICLRMetaHost : {D332DB9E-B9B3-4125-8207-A14884F53216}
  • IID_ICLRRuntimeInfo : {BD39D1D2-BA2F-486A-89B0-B4B0CB466891}
  • CLSID_CLRRuntimeHost : {90F1A06E-7712-4762-86B5-7A5EBA6BDB02}
  • IID_ICLRRuntimeHost : {90F1A06C-7712-4762-86B5-7A5EBA6BDB02}

ppv

  • pMetaHost->GetRuntime : [edx+0Ch]
  • pRuntimeInfo->GetInterface : [edx+24h]
  • pRuntimeHost->Start : [ecx+0Ch]
  • pRuntimeHost->ExecuteInDefaultAppDomain : [edx+2Ch]

0x5 参考文献