2010-06-18 7 views

답변

2

unsigned char**의 의미는 무엇입니까? 바이트 배열 인 경우 ref byte[]을 사용하십시오. 0으로 끝나는 문자열 인 경우 ref string을 사용하십시오.

http://www.pinvoke.net 페이지의 C#에 매핑 된 유명한 메소드 서명을 볼 수 있습니다.

+0

C++ 인터페이스에서이 문장은 다음과 같습니다. "This [unsigned char **]는 문자 배열에 대한 포인터 배열입니다. 각 문자는 표준 XSB 문자 중 하나입니다." 이 변수는 Sokoban 게임에서 오브젝트의 위치를 ​​저장하는 역할을합니다. 고맙습니다! 이 경우 –

+0

문자열 []가 맞아야합니다. – codymanix

+0

그것은 작동합니다. 고맙습니다! –

0

마샬링 할 수있는 숫자는 ref string입니다. [MarshalAs] 속성과 함께 올바른 문자 세트를 사용해야합니다.

1

C++C# 모두에 대한 인터페이스가있는 직렬화 라이브러리를 사용해야한다고 생각합니다.

Google의 Protocol Buffers 또는 Facebook의 Thrift이이 두 가지 언어를 지원합니다.

확실히 훨씬 쉽고 안전해질 것입니다.

전송 된 데이터 유형 (원시 문자열 대신 정수, 구조체 등 사용)을 변경하려는 경우 직렬화 라이브러리를 사용하는 것이 좋습니다.

+0

링크 주셔서 감사합니다! 하지만 이것은 내가 마샬링하고 다른 작업을 계속하는 데 매우 행복 할 정도로 내가 필요로하는 마지막 데이터 유형입니다. –

+0

여가 시간을 갖게되면 정말 이상하게 생각합니다. 다른 메시지 유형을 교환하기 때문에 프로젝트의 완벽한 사용 사례로 보입니다. 프로토콜 버퍼를 사용하면 메시지 구조 또는 인터페이스를 변경하는 것이 매우 쉽습니다. 다음은 C#으로 시작하도록 안내하는 자습서입니다. http://snipplr.com/view/24475/google-protocol-buffers-usage-in-c-using-jon-skeets-protobufcsharpport/. Visual Studio IDE 내에서 사용할 수도 있습니다 (http://code.google.com/p/protobuf-net/). –

관련 문제