سؤال

لقد قمت بتسلسل كائن باستخدام protobuf-net ، في تطبيق .NET الخاص بي ، بسهولة نسبية. أحصل أيضًا على ملف .proto الذي تم إنشاؤه ، باستخدام أمر getProto ().

في ملف .NET الذي تم إنشاؤه .Proto ، تحصل حقول GUID الخاصة بي على نوع من "Bcl.Guid".

الآن أود أن أقوم بتجميع ملف .proto في C ++ حتى أتمكن من تخلص من البيانات.

ومع ذلك ، لا يعرف برنامج التحويل البرمجي C ++ protoc.exe كيفية تفسير Bcl.Guid ، ويلقي رسالة خطأ "VideoAudioStructs.Proto: 11: 13:" Guid "لم يتم تعريفه". ماذا أفعل بهذا؟

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

المحلول

يقوم Protobuf-Net بتشفير هذا كزوج من قيم 64 بت ثابتة في الحقول 1 و 2. فكر في هذا في مجلد النشر ؛ إذا لم تخبرني وسأضيفه ؛ وإلا هو كذلك في الشاحنة).

لكن من الناحية المفاهيمية:

message guid {
  optional fixed64 lo = 1; // the first 8 bytes of the guid
  optional fixed64 hi = 2; // the second 8 bytes of the guid
}

إذا واجهت أي مشاكل ، فستكون نهج الاحتياط هو إرسالها (بدلاً من ذلك) كـ bytes قطعة ، عن طريق إضافة خاصية Shim. اسمحوا لي أن أعرف إذا كنت تريد مثالا على ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top