سؤال

لدي مشروع QT وترغب في استخدام مكتبة خارجية تتضمن "afxstr.h". المشكلة هي أنه كلما أرادت بعد الارتباط مع Lib و بما في ذلك رأسهم، أحصل على خطأ:

giveacodicetagpre.

بالطبع، مشروعي ليس مشروعا MFC ولا يمكنني استخدام ATLSTR.H بدلا من ذلك لأنه ليس مكتبتي.

أنا أبحث عن حل سريع!

أنا أستخدم VS2010.

المسألة lib هو وسطاء التفاعلي API .

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

المحلول

الإعداد المعني هو خصائص التكوين / عام، واستخدام MFC.

خيار التحويل البرمجي ضمني من ذلك هو / d "_afxdll" عند استخدام MFC في DLL. أما بالنسبة لخيارات الرابط، بفضول الارتباط الصريح لمكتبات استيراد Windows (مثل kernel32.lib) إزالتها.

يبدو أن Visual Studio للعثور على المكتبات المعنية تلقائيا.ومع ذلك، يتم تخزين خيار "استخدام MFC" مع ملف المشروع، لذلك لا أستطيع أن أقول كيف سترجمت إلى برنامج نصي بناء مخصص.

تشمل الأول يجب أن يكون

giveacodicetagpre.

ولا يمكنك تضمين Windows.h قبل ذلك.عادة، هذا هو الأول الذي يشمل في Stdafx.h إذا كنت تستخدم رؤوس بريموميل.بخلاف ذلك، يمكن تضمين رؤوس MFC الأخرى بحرية حسب الحاجة.

أشك في أن هذه هي نهاية القصة، والحصول على MFC للعب مع أي شيء مؤلم، وأحيانا يكون من الأسهل الاستسلام :) تكشف جوجل سريعة أن هناك حلولا، لكنها تنطوي على رمز إضافي.

نصائح أخرى

حسنا، هل تعلم هذا بالفعل، فقط جعله أكثر وضوحا:

أضف ملف

.pro: يحدد += ib_use_std_string

تجنب استخدام mfc cstring

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