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

خطأ في Dll

بدأه rober في 29 مايو 2008 · 6 رد · 955 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم

الأخوة الكرام هناك مشكلة عند أستخدامي للـ DLL في برنامجي يتم أستدعاء الأجراء من الملف و ينفذ لكن بعدها تظهر رسالة خطأ

Invalid pointer operation

لكنني لاحظت أنه عند أضافة أمر لأظهار رسالة في الأجراء في ملف الـ DLL

لا تظهر رساله الخطأ السابقة و إنما يتم تنفيذ البرنامج و تظهر الرسالة التي وضعتها فقط

فهل من حل يا أهل الخبرة

و لكم جزيل الشكر مسبقا

لقد قمت بإرفاق الملفات للنظر و التوضيح

dll.rar

تم تعديل هذه المشاركة بواسطة rober في 29 مايو 2008 في 01:40

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#2

انا جربت الملفات التنفيذية المرفقة فظهرت المشكلة، قمت بفتح المشروع بدلفي 2007 وقمت بإعادة الترجمة فلم تظهر أي مشاكل، وذلك بدون تغير أي سطر

أعتقد المشكلة هي انك تقوم بالتعامل مع نوع String ضمن ملفات ال DLL، وهذه خطاً لانه لا يمكن استخدام هذه المكتبة مع لغات غير دلفي لاختلاف نوع البيانات string بينهم، لذا انصحك بالتغير لنوع PChar، او اضافة ان تقوم بإضافة وحدة sharemem الى مشروعك، وهذه به مشكلة وهي انك سوف تحتاج لإرفاق ملف borlandmm.dll مع مشروعك، اما في حالة pchar فلا يلزم ذلك لان هذا النوع هوا المستخدم لدي جميع لغات البرمجة ضمن الويندوز

اما لماذا لم تظهر المشكلة معي في دلفي 2007، فاعتقد ان مدير الذاكرة الجديد Fastmem قد حل المشاكل السابقة، ولم تعد بحاجة لاستخدام وحدة sharemem مع نوع string، لكني لست متاكد 100% من هذا :)

نسيت أن أذكر انه بإمكانك إستخدام مدير الذاكرة FastMem ايضا ضمن دلفي 7 وقد يحل مشكلتك بدون اللجوء للإستخدام دلفي 2007 او استخدام الحلول الاخرى

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#3

شكرا على ردك اخي محمد , لكن ما هو"مدير الذاكرة FastMem" ؟

اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

#4

هو الذي يتكفل بحاجيات برنامجك من الذاكرة وادارتها

Fastmm بدليل محسن للذي تستعمله Borland

fastmm.sf.net

d4baa0.gif
#5

السلام عليكم

أخي الكريم محمد مشكوووووووووووور جداً على أجابتك الرائعة

بصراحة جوابك كان مداوياً للمشكلة فلك جزيييل الشكر على ما قدمت

أنا أستخدمت الـ PChar كحل و قد كان مجديا و ShareMem لم يجدي

و قد أرفقت المثال للأستفادة

يحتوي المثال على مشروع الـ DLL و المشروع المستخدم لملف الـ DLL

و لك جزيل الشكر مرة أخرى و جزاك الله ألف ألف خير

والسلام ختام

make_dll.zip

تم تعديل هذه المشاركة بواسطة rober في 5 يونيو 2008 في 02:15

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#6
اقتباس
أنا أستخدمت الـ PChar كحل و قد كان مجديا و ShareMem لم يجدي

حتى تنجح طريقة ال sharemem، يجب ان تضمن ضمن المشروع في المكتبة كاول خيار ضمن ال uses، وايضا ضمن المشروع المستخدم لتلك المكتبة، واقصد بالمشروع ملف ال dpr عن طريق (project > view source) وايضا يجب ان يكون اول خيار ضمن ال uses

على فكرة FastMM هو الاسم الصحيح كما ذكره اخي محمد وليس كما كتبته fastmem

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#7

أخي محمد نسمان

مشكور على هذه المشاركة الطبية

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

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