ما يعادل marshal.ptrtostring * طرق للحصول على صفيف بايت

StackOverflow https://stackoverflow.com/questions/585683

  •  06-09-2019
  •  | 
  •  

سؤال

إذا كان لدي مؤشر غير مدار وأريد تحويل عدد محدد من البايتات من هذا الموقع إلى صفيف بايت، فما هي أفضل طريقة للقيام بذلك؟

أي ما هو ما يعادل MARSHAL.PTRTOSTRING * الطرق ولكن حيث الوجهة هي بايت ()

شكرا

هل كانت مفيدة؟

المحلول

Marshal.Copy يحتوي على الزائدة للحصول على صفائف نسخ البايت من / إلى مؤشر.

بواسطة Byte() هل هذا interoperation مع نمط VB6 كوم؟ عليك أن ترغب في التحقق من نوع COM الأساسي باستخدام عارض OLE-COM (المضمن في أدوات Windows SDK المثبتة مع VS) لفتح DLL التي تم إنشاؤها في DLL لإلقاء نظرة على هذا Typelib يقول.

نصائح أخرى

جرب التعليمات البرمجية التالية

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