C#에서 마샬링을 하는 방법은 요기..
https://gomnezip.tistory.com/372
C# 마샬링 - 구조체
C#에서 C++의 DLL을 호출할 경우 데이터를 주고받아야 한다. 그렇게 하기 위해서 여러가지 방법이 있지만, 우선 DLL을 만든 후, DllImport를 사용하여 전달하게 구성되었기에. 그에 맞는 방법으로.. C#
gomnezip.tistory.com
C#에서 마샬링을 왜 할까? 아니 마샬링(Marshalling)이 뭐지?
우선 마샬링을 검색해보면..
네이버 사전 링크 : https://en.dict.naver.com/#/entry/enko/5bea9e86d2054c2d9dbf8bd0f2ec28a3
네이버 영어사전
미국/영국식 발음, 여러 종류의 출판사 사전 뜻풀이, 풍부한 유의어/반의어, 대표사전 설정 기능, 상세검색 기능, 영어 단어장 제공
en.dict.naver.com
자.. 정렬시킨다는 뜻이 있다. 무엇을 정렬할 것인가?
데이터를 정렬시킨다. C#은 관리되는 코드안에서 정의하지만, C++은 native이다. 두 언어가 구조체의 데이터를 메모리에 적재하는 형태가 다르다. 그렇기때문에, 마샬링을 통해 데이터를 정렬시켜주는 것.
struct myStructSample{
bool isMe;
double dMyScoreRate;
...
}
예를 들어 위와 같은 데이터 형태를 C# <-> C++간에 주고받아야한다면.. 이 구조체는 이렇게 읽어주세요~ 라고 알려줘야제대로 읽을 수 있을 것이다.
C++에서 C#으로 구조체를 던져주었는데, C#입장에서는 이걸 어쩌라고? 어떻게 해야해? 라는 상황이 되어버릴텐데, 그때 이 구조체를 어떻게 읽으라는 사용설명서 또는 도면이라고 생각하면 될듯.
댓글