나는 cpp 클라이언트가 사용하는 C# COM 서버가 있습니다.COM을 사용하여 C#에서 cpp로 문자열 전달
C# 메서드 중 하나는 문자열을 반환합니다.
cpp에서 반환 된 문자열은 최소한 메모리보기에 따라 유니 코드 (UTF-16)로 표시됩니다.
- 항상 COM 문자열의 경우입니까?
- 대신 UTF-8을 사용할 방법이 있습니까?
- 문자열이 cpp와 C# 사이에 바이트 배열로 전달 된 코드를 보았습니다. 이것에 어떤 이점이 있습니까?
나는 cpp 클라이언트가 사용하는 C# COM 서버가 있습니다.COM을 사용하여 C#에서 cpp로 문자열 전달
C# 메서드 중 하나는 문자열을 반환합니다.
cpp에서 반환 된 문자열은 최소한 메모리보기에 따라 유니 코드 (UTF-16)로 표시됩니다.
[return: MarshalAs(UnmanagedType.LPStr)]
을 넣습니다.나에게 소리는 당신이 그것을 뒤로 가지고있는 것처럼. 그는 C++에서 C# COM 구성 요소를 호출하고 있습니다. – sblom
@sblom : 예, 답이 나를 신비화했습니다. COM은 양쪽에서 같은 방식으로 보입니다. 자동화는 항상 유니 코드를 지원합니다. –
이 스레드는 상반되는 답변으로 매력없는 downvoting fest로 바뀌 었습니다. MSDN Library에서 BSTR 및 SysAllocString에 대한 정의를 찾아보고 자신의 결론을 도출하는 것이 좋습니다. –