문제

관리되지 않는 포인터가 있고 지정된 수의 바이트를 해당 위치에서 바이트 어레이로 전송하려면이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

즉 Marshal.ptrtoString*의 동등한 것은 무엇입니까?

감사

도움이 되었습니까?

해결책

Marshal.Copy 포인터에 대한 바이트 어레이를 복사하기위한 과부하가 있습니다.

에 의해 Byte() VB6 스타일 COM과의 상호 작용입니까? OLE-COM 뷰어 (VS와 함께 설치된 Windows SDK 도구에 포함)를 사용하여 기본 COM 유형을 확인하려면 VB가 생성 된 DLL을 열어 TypLIB가 말합니다.

다른 팁

다음 코드를 시도하십시오

public static byte[] PtrToByteArray(IntPtr ptr, int len) {
  var array = new byte[len];
  for ( int i = 0; i < len; i++ ) { 
    array[i] = (byte)Marshal.PtrToStructure(ptr, typeof(byte));
    ptr = new IntPtr(ptr.ToInt64()+IntPtr.Size);
  }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top