ما يعادل marshal.ptrtostring * طرق للحصول على صفيف بايت
-
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);
}
}
لا تنتمي إلى StackOverflow