如果我有一个非托管指针和欲指定的字节数从该位置传送到一个字节数组,什么是做到这一点的最佳方式?

即。什么是Marshal.PtrToString *方法的等效但是其中所述目的地是一个字节()

由于

有帮助吗?

解决方案

Marshal.Copy具有用于复制字节数组/过载从一个指针。

通过Byte()是这个互操作与VB6风格COM?你为什么要使用OLE-COM查看器(包含在VS安装了Windows SDK工具)打开VB创建DLL来看看它的类型库说要检查基础COM类型。

其他提示

尝试使用以下代码

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