마샬과 동일합니다. ptrtoString* 바이트 배열에 대한 방법
-
06-09-2019 - |
문제
관리되지 않는 포인터가 있고 지정된 수의 바이트를 해당 위치에서 바이트 어레이로 전송하려면이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
즉 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);
}
}
제휴하지 않습니다 StackOverflow