Programming/C++/CLI

C++/CLI 데이터 타입에 따른 리턴값, 파라미터 처리 (ActvieX ↔ C++/CLI ↔ C#)

blueasa 2010. 10. 5. 21:09

※ C#에서 호출시 C++/CLI 에서 리턴값, 파라미터값은 다음과 같이 처리합니다.

 

 [ String - BSTR (LPCTSTR) ]

// ex: Set

bool SetTestString(String^ strTestString)
{
   axTestCtrl1->TestString= strTestString;
   return true;

}

// ex: Get
String^ GetTestString()
{
   return axTestCtrl1->TestString;
}

short, int, long ]

 

: short, int, long 형은 그냥 주고 받으면 됩니다.

// ex: Set

bool SetShortVal(short nShortVal)
{
   axTestCtrl1->ShortVar = nShortVal;
   return true;
}

// ex: Get
short GetShortVal()
{
   return axTestCtrl1->ShortVal;
}

struct ]

// ex: 참조 가능한 구조체 선언

ref struct EocsTestStruct
{
   String^ eocsstrVal;
   short eocsnVal;
   long eocslnVal;
}

 

// ex: 구조체를 파라미터로 받아서 Set

bool SetEocsTestStruct(EocsTestStruct^% EocsTest)

{

   try

  {
      axTestCtrl1->ShortVar = nShortVal;

      axTestCtrl1->eocsstrVal= EocsTest->eocsstrVal;

      axTestCtrl1->eocsnVal= EocsTest->eocsnVal;
      axTestCtrl1->eocslnVal= EocsTest->eocslnVal;
      return true;

   }

   catch (Exception^ e) 
   {
       MessageBox::Show(e->Message);
       return false;
   }
}

...

... ING ... : 다른 케이스도 작업하다가 정리할 예정입니다.

...

반응형