.net 相当于字节数组的Marshal.PtrToString*方法

.net 相当于字节数组的Marshal.PtrToString*方法,.net,marshalling,.net,Marshalling,如果我有一个非托管指针,并且我想将指定数量的字节从该位置传输到字节数组,那么最好的方法是什么 i、 e.Marshal.PtrToString*方法的等价物是什么,但目标是字节() 感谢封送。Copy具有用于将字节数组复制到指针或从指针复制字节数组的重载 通过Byte()这是与VB6样式COM的互操作吗?您为什么要使用OLE-COM查看器(包含在与VS一起安装的Windows SDK工具中)来检查底层COM类型,以打开VB创建的dll,查看其类型库显示的内容。请尝试以下代码 public sta

如果我有一个非托管指针,并且我想将指定数量的字节从该位置传输到字节数组,那么最好的方法是什么

i、 e.Marshal.PtrToString*方法的等价物是什么,但目标是字节()


感谢

封送。Copy
具有用于将字节数组复制到指针或从指针复制字节数组的重载

通过
Byte()
这是与VB6样式COM的互操作吗?您为什么要使用OLE-COM查看器(包含在与VS一起安装的Windows SDK工具中)来检查底层COM类型,以打开VB创建的dll,查看其类型库显示的内容。

请尝试以下代码

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);
  }
}
公共静态字节[]PtrToByteArray(IntPtr ptr,intlen){
var数组=新字节[len];
对于(int i=0;i
谢谢,太完美了,我使用了这里描述的Marshal.Copy(IntPtr,Byte(),Int32,Int32)重载