C#에서 정규 C++ DLL을 호출할 경우, 구조체/변수 포인터를 넘겨 결과값을 받아오는 방법으로 ref keyword를 사용한다. 하기 코드에서 Marshalling은 자동으로 이루어진다.예를 들어 정규 DLL에 아래와 같은 C++의 구조체와 Enumeration Value가 정의되어 있고, typedef enum SomeEnum1{ enumVal1, enumVal2 };typedef enum SomeEnum2{ enumVal1, enumVal2 };public struct SomeStruct{char strSomeName[32];SomeEnum enum1;RECTrcChar[16];SomeEnum2 enum2;}SOMESTRUCT;정규 DLL의 함수 : DWORDGetDWordPtr( DWORD *pID);DWORDGetStructResult( DWORD uID,LPCSTR pathName, SOMESTRUCT *pResult);를 사용하고 싶다고 가.......
↧