문제

매개 변수별로 문자열을 C 함수로 통과하는 방법에 대해 궁금했습니다. 나는 훌륭한 대답을 찾았습니다

C#에서 관리되지 않는 함수 호출 : StringBuilder를 통과하거나 안전하지 않은 코드를 사용해야합니까?

그러나 나는 의심이있다. 수입 기능 실행 중에 쓰레기 수집기가 왜 (관리 된) StringBuilder 인스턴스를 재배치하지 않는 이유를 설명 할 수 있습니까?

도움이 되었습니까?

해결책

보다 현악기의 기본 마샬링 COM 및 P/ONCOKE를 사용할 때 String 및 StringBuilder가 마샬링되는 방법에 대한 자세한 내용. 명시 적으로 말하지 않습니다 사용 패턴은 안전하지만 P/Invoke에 문자열 및 StringBuilder를 사용하는 것이 지원되고 의도 된 동작임을 나타냅니다. 마샬링 시스템이 외부 통화 기간 동안 버퍼를 고정하여 GC가 재배치하지 못하게한다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top