먹고 사는 일/VC++

C# .dll C++ 사용 방법

니카루스 2011. 10. 18. 12:57


C#
/// tlb 생성 interface 생성
: regasm .dll 이름 /tlb .tlb 

#import "mscorlib.tlb"
#if defined (USINGPROJECTSYSTEM)
#import "ClassLibrary2.tlb" no_namespace named_guids
#else
#import "ClassLibrary2.tlb" no_namespace named_guids
#endif

#pragma warning (disable:4279)
#pragma warning (disable:4278)

void classname::CallDll()
{
/// interface
 IClassLibrary2* pClass = NULL;

 CoInitialize(NULL);

/// CoCreateInstance(class Name, NULL, CLSCTX_INPROC_SERVER,  Interface Name, reinterpret_cast<void**>(&pClass)

 HRESULT hr = CoCreateInstance(CLSID_ClassLibrary2, NULL, CLSCTX_INPROC_SERVER,
  IID_IClassLibrary2, reinterpret_cast<void**>(&pClass) );

if(FAILED(hr))
 {
  ;
 }
 else
 {
/// 사용
  int nSum = pClass->CallFun(5, 6);
/// 해제
  pCalula->Release();
 }

/// 삭제
 CoUninitialize();
}