أي نوع من التعليمات البرمجية مكتبة ينبغي بناء على التوزيع ؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

أنا بحاجة إلى بناء مكتبة C لتوزيع بين عملائنا.المكتبة يجب أن تكون قادرة على الوصول إليها من مجموعة واسعة من اللغات بما فيها VB6, C++ ، VB.net و C#.

لقد يجري استخدام عناصر تحكم ActiveX (ملفات ocx) حتى الآن.ولكن أتساءل عما إذا كان هناك ما هو أفضل نوع من مكتبة (dll, etc.) التي لا يمكن أن نبني.ماذا تنصح ؟

أنا يقتصر على C++ مثل مكتبة اللغة ، ولكن يمكنك ذكر لغات أخرى من أجل الإشارة إلى المطورين الآخرين.

P. S.آسف إذا كان السؤال طلبت بالفعل.لقد واجهت صعوبة في إيجاد عنوان مناسب.لا تتردد في تصحيح لغتي الإنجليزية.

تحرير: يبدو أن أفضل خيار هو إما Dll أو OCX (أي COM), ولكن أنا لا تزال تواجه بعض الشكوك على أي واحد سوف تختار.واحد الذي هو أكثر ملاءمة اللغات الحديثة (.صافي على سبيل المثال)?وهو واحد من شأنه أن يكون أسهل للاستخدام من نهايته المطور المنظور ؟

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

المحلول

تقريبا كل لغة لديها طريقة التحميل المكتبات الديناميكية و الوصول إلى تصدير ج وظائف منها.

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

نصائح أخرى

إذا كنت تبحث في دعم كل VB6 و .صافي انت عالق مع تعريض عبر واجهات COM, ولكن على الأقل سوف تحصل على الخروج من الحاجة إلى إنشاء أكثر من مجمع واحد على أساس اللغة/وقت التشغيل نظام كنت تحاول أن تتفاعل مع.

إذا كان هناك أي فرصة هذه سوف تحتاج إلى أن استدار إلى عدم منصات ويندوز ثم DLL / المكتبة المشتركة هو افضل خيار كائن COM ليست حقا في كل المحمولة.

وبالإضافة إلى ذلك يمكنك استدعاء DLL تقريبا من أي منصة حتى لو كان ذلك يتطلب منك أن تكتب مجمع من نوع ما.فإنه من السهل جدا للالتفاف dll في كائن com ولكن إذا كنت تجعل الأم كائن com أصعب بكثير لإضافة ج نمط DLL API.بالإضافة إلى أنك قد تريد أن نسميها من جافا على سبيل المثال و هو أسهل بكثير من كتابة JNI المجمع إلى استدعاء DLL الخاص بك من الحصول على عمل مع COM في أي نوع من عبر منصة الطريق.

حقا يتوقف على ما المنصات كنت حقا بحاجة إلى دعوة من التأكد أنك لن تحصل على شيء خارج عن المألوف في المستقبل.

أن يكون للاستدعاء من كل تلك اللغات الخيار الحقيقي الوحيد سيكون COM, دون الحاجة إلى كتابة مغلفة حيث المطلوبة (التي من شأنها أن هزيمة نقطة)

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