ج Convert تحويل سلسلة إلى بايت لإرسال عبر برنامج التعاون الفني

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

سؤال

أحاول إرسال سلسلة أحرف 28 إلى عنوان إب البعيد والمنفذ.لقد فعلت هذا بنجاح في vb.net استخدام مقتطفات التعليمات البرمجية التالية:

Dim swon As String = "A55A6B0550000000FFFBDE0030C8"
Dim sendBytes As [Byte]()
sendBytes = Encoding.ASCII.GetBytes(swon)
netStream.Write(sendBytes, 0, sendBytes.Length)

لدي الآن لتحويل هذا عبر إلى ج have ويكون ما يلي حتى الآن:

char *swon = "A55A6B0550000000FFFBDE0030C8";
array<Byte>^ sendBuffer = gcnew array<Byte>(bufferSize);
sendBuffer = BitConverter::GetBytes( swon );
tcpStream->Write(sendBuffer, 0, sendBuffer->Length);

ولكن أنا تتعثر في هذه المرحلة.أنا متأكد من أنني أفتقد خطأ بناء جملة بسيط ولكن لا يمكنني معرفة ذلك!

لتوضيح ، أنا لا تحصل على خطأ ، ولكن لا أعتقد أن يتم تحويل السلسلة إلى بايت بشكل صحيح كما هو الحال عندما تحويل مرة أخرى ، وأنا مجرد الحصول على '01'

في صحتك, كريس

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

المحلول

أنا لا أفهم لماذا كنت لا تستخدم فقط نفس الطبقات الإطار الصافي بالضبط في رمز CL/كلي الخاص بك.على سبيل المثال. System::String ل swon, Encoding::ASCII لإنتاج مجموعة من وحدات البايت.

أي شيء فعلته في رموز يمكنك تعيين مباشرة أكثر من ج/ / كلي دون استخدام فئات مختلفة-وهذا هو أسهل ميناء بالنسبة لك.عندما كنت في مسن على الانترنت ، ما عليك سوى اختيار C++ عرض للحصول على أمثلة من الاشياء التي تريد القيام به.جرب ذلك في هذه الصفحة ، على سبيل المثال: http://msdn.microsoft.com/en-us/library/system.text.encoding.ascii.aspx

نصائح أخرى

كان ستيف محقًا في إمكانية تكرار نفس المنطق في C ++.لكن رمز الترميز العام C ++ هو بالفعل ASCII ، فلا يلزم إجراء تحويل.كل ما تحتاجه هو مجرد نسخة. Genacodicetagpre

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