سؤال

أريد أن أكتب المكتبة التي سوف تكون مرتبطة بشكل حيوي من البرامج الأخرى التي تعمل على أنظمة التشغيل الحديثة مثل ويندوز, لينكس نظام التشغيل/X (أيوسيتم نشرها كما .dll أو .so وحدة).

ما هي أنسب لغة في هذه الحالة ؟ يجب أن العصا مع عادي C ؟ أو هو C++ أيضا حسنا ؟

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

المحلول

ويمكنك استخدام إما C أو C ++ لتنفيذ، ولكن أنصح لتحديد واجهة في C. النقي وسيكون من الأسهل بكثير لدمج.

نصائح أخرى

الصعوبة مع إنشاء مكتبة C ++ وزعت في شكل ثنائي هو أن الزبائن - مستخدمي المكتبة - وعادة ما تكون مقيدة لاستخدام نفس مترجم C ++ كما قمت بإنشاء مكتبة معها. هذا يمكن أن يكون مشكلة إذا كنت تريد أن تبقي حتى الآن، وأنها لم تفعل ذلك، أو إذا كانت تريد أن تبقي حتى الآن، وكنت لا. إذا كنت تتعامل في المصدر، وهذا هو أقل من قضية، طالما لديك C ++ هو محمول بما يكفي للسماح لاستخدامها من قبل جميع المجمعين استخدام الزبائن.

إذا يمكن استخدام رمز من C، كنت على الارجح الرمز إلى واجهة C. بديل، وتوفير واجهات اثنين - واجهة الأصلي C ++ واجهة C. ولكن هذا العمل أكثر من مجرد واجهة C. من ناحية أخرى، قد تكون هناك فوائد من واجهة C ++ (ربما باستخدام التكرارات STL، الخ)، والتي يمكن أن التأثير قراركم.

وأود أن أقول أيضا أن C هو القاسم المشترك الأدنى. دائما يكون لديك خيار كتابة المجمع C ++ إلى المكتبة الأساسية إذا كان هذا يدمج أفضل مع تطبيق الاستدعاء.

وانا اقول C هو محمول على الأكثر كما هو متوقع، ولكن C ++ غير قابلة للتنفيذ.

تعتبر عاملا من أدنى قاسم مشترك و جعل المستهلكين من المكتبات اتخاذ القرارات التي هي الأفضل بالنسبة لهم.بناء extern ج ربما لا يزال يخلط بعض الناس وتريد المكتبة الخاصة بك إلى السفر بعيدا والوصول إلى أوسع جمهور.بالتأكيد جعل واجهات النقي ج.C++ هي بخير شريطة تجنب بعض الزوايا المظلمة (مثل المحكمة الخاصة بلبنان).ج هو الأكثر المحمولة بلا.إنشاء المكتبات على جميع المنابر المتاحة ليس بالأمر الهين لذلك تأكد من أن نلقي نظرة هنا بعض التلميحات.قد ترغب أيضا في النظر في استخدام autoconf وما شابه ذلك.

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