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

[ تمت الإجابة ]C++ Dll

بدأه Blueteeth في 19 مارس 2008 · 5 رد · 714 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم,

أنا عندى مكتبة (lib file) و السى/سى++ هيدر بتاعها (.h) و ال .dll بتاعها, و أريد أن أستخدم الدوال و ال structs اللى موجودة فى هذه المكتبة داخل مشروع بالسى شارب, كيف؟

#ليس عندى أى خبرة بال :S managed code

شكرا مقدما.

#2

السلام عليكم ورحمة الله وبركاته

اعمل مثال ل dll فيها function بتجمع رقمين وابعتها وان اشاء الله احاول اساعدك

بس ياريت تكتب الكود الموجود في dll لان انا مش عندي برنامج ++C

#3

للأسف مش أنا اللى عامل المكتبة دى و عمرى ما كتبت dll's أساسا قبل كدة ( =/ كله كان command-line), على العموم ال dll دى تحتوى على exported functions و ليست COM component (إذا كان دا مفيد يعنى!).

#4

السلام عليكم,

اولا نفرض اننا نريد انشاء dll بلغة السي

//mydll.cpp
#include <stdio.h>

// Export funcation
extern "C" __declspec( dllexport ) int Sum(int num1, int num2);

int Sum(int num1, int num2)
{
	return (num1 * num2);
}

حيث تعيد هذة الدالة حاصل الضرب.

ولعمل Compile لهذا الملف نكتب في مسطر الاوامر هذا الامر

cl /GA /Gz /LD mydll.cpp /link /subsystem:windows /DLL /EXPORT:Sum kernel32.lib

ولأستخدام هذا الـ dll من خلال لغة C Sharp نقوم بتصرح الاتي

[DllImport(@"mydll.dll")]
static extern int Sum(int num1, int num2);

ويتم استدعاء الدالة كمايلي

int result = Sum(2, 3);

مواضيع متنوعة

#5
/index.php?showtopic=154269
#6

مممم متشكر جدا يا مودى شرح رائع. حجرب و أقولك إيه النتيجة, بس المشكلة إن ال dll فيه كمية كبيرة أوى من الفنكشنز و ال types

#شكرا أخى بن العيد, أنا كنت فاكر إن فى طريقة خاصة بالسى# لأنى بصراحة ماشى فى مسارين واحد بالسى++ علشان المكتبة natively بتدعم السى و مسار بالسى# علشان ال GUI اللى حيجننى فى السى++ :@

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