هل هناك إصدار مخزّن من CComBSTR يجعل تسلسل السلسلة أكثر كفاءة؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

لدي العديد من المشاريع حيث أحتاج إلى إلحاق سلاسل بكائن BSTR/CComBSTR/_bstr_t (على سبيل المثال.بناء عبارة SQL ديناميكية).هل يوجد نوع جاهز في WinAPI لتخزين التسلسل مؤقتًا (مثل StringBuilder في .NET)، أم هل يجب علي كتابة نوع خاص بي؟من ما أعرفه عن طرق الإلحاق، فإنها تقوم بإعادة التخصيص.

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

المحلول

انسخ BSTR إلى CString، وقم بإجراء كافة التعديلات هناك، ثم انسخه مرة أخرى إلى BSTR/CComBSTR.تكون عمليات تخصيص CString أسرع من SysAllocStringLen.

نصائح أخرى

عليك أن تكتب بنفسك.يمكنك استخدام SysAllocStringLen أو SysReallocString APIs للحصول على مخازن مؤقتة مختلفة الحجم.إنها تعمل على سلسلة إدخال، لكن يمكنك تمرير NULL لتخصيص مخزن مؤقت ثابت الحجم وغير مهيأ.

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