الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أربط بين برنامج C++ و visual basic.NET؟

مغلق
بدأه PK1 في 5 أبريل 2007 · 2 رد · 769 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

إذا كان عندي برنامج C++ و أردت أن أعمل له interface بال Visual Basic.NET

فكيف أربط بينهم

مع العلم أني خبرتي في ال Visual Basic.NET للأسف بسيطه جدا ولكن

لابد من أن أستخدمها في هذا البرنامج

( أتمنى أن يكون الرد في أقرب وقت )

و شكراجزيلا لكم

#2

الأخ الفاضل ...

DLLExportNET.zip

يمكن إتمام الربط بين برامج مختلفة بعدة طرق، بغض النظر إذا كانت هذه البرامج مصممة بنفس اللغة أم بلغات مختلفة، ففى النهاية هناك صيغة تنفيذية مشتركة يفهما الجميع، وما عليك الا ان تحديد الطريقة الاكثر تلائماً مع ما تريد، ويمكن استخدام عدة أساليب مثل:

  1. تصميم مكتبة DLL
  2. تصميم (COM) وهى (Component Object Module)
  3. تصميم ActiveX Control
  4. ... الخ

وهناك طرق أخرى ولكن تعتمد على إحتياجك، فمثلاً عند أستخدام كود مشترك (Shared or Distributed) على جهاز وتستفيد من أستخدامه أجهزة أخرى، يمكن عمل (DCOM) وهى (Distributed Component Object Module) إذا كان الربط بين جهازين مختلفين أو Client/Server Application فحين ذلك لا يستلزم الأمر أن يكونا بنفس اللغة، .... الخ

وعند كتابة كود بأى من الطرق السابق ذكرها، يمكنك أستخدام هذا الكود من أى برنامج أخر، فلنأخذ على سبيل المثال الطريقة الأولى وهى تصميم مكتبة DLL، فستقوم بكتابة كل الكود الخاص بك (ولنفترض بالـ ++C) داخل المكتبة، ثم ستقوم بتحديد دوال يمكن أستدعائها من الخارج ببرامج أخرى ( Export Functions )، وهذه الدول هى التى ستستدعيها من برنامج أخر (ولنفترض VB).

فالنفترض مثالاً أن لدينا دالة (Function) تقوم بحساب مضروب الرقم (المضروب هو الرقم مضروب فيما قبله والناتج فيما قبله ..... حتى رقم 1، فمثلاً مضروب 4 = 4*3*2*1) وهذه الدالة فى ملكتية DLL

long GetFactorial(long n)
{
	int	r, i;

	r = 1;
	for(i=1; i<=n; i++)
		r = r * i;

	return r;
}

حيث تأخذ متغير من نوع long وهو n وترجع الناتج وهو من نوع long أيضاً، فيجب تعريفها فى الـ Visual Basic 6.0 مثل API كالتالى:

Private Declare Function GetFactorial Lib "DLLExport.dll" (ByVal n As Integer) As Integer

ثم بعد ذلك يمكنك استخدامها، فمثلاً لإظهار رسالة بقيمة مضروب الرقم 4 أستخدم التالى:

	Private Sub cmdFactorial_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdFactorial.Click
		MsgBox(GetFactorial(4))
	End Sub

أرجوا ان يكون هذا هو المطلوب إيضاحه ، كذلك راجع: كيف اربط بين (inteface)في الفيجوال بيسك 6وc++

شكراً

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 30 أكتوبر 2007 في 11:15

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#3

أعتذر عن التأخر في الرد ولكن الانترنت كان مسبب لي بعض المشاكل

شكرا لك

هذا الموضوع مغلق.

مواضيع مشابهة