본문 바로가기
Programming/WPF

C#에서 마샬링이 필요한 이유

by 곰네Zip 2023. 2. 16.

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#입장에서는 이걸 어쩌라고? 어떻게 해야해? 라는 상황이 되어버릴텐데, 그때 이 구조체를 어떻게 읽으라는 사용설명서 또는 도면이라고 생각하면 될듯.

반응형

댓글