delphi4arab منتديات دلفي للعرب
استخدام مكتبة dll مبرمجة بدلفي 7 ودلفي XE - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : استخدام مكتبة dll مبرمجة بدلفي 7 ودلفي XE (/showthread.php?tid=5956)



استخدام مكتبة dll مبرمجة بدلفي 7 ودلفي XE - dztr - 18-02-2014

السلام عليكم ورحمة الله وبركاته
عندي DLL
وهذا الاجراء
procedure SendData(Data: PChar; Count: Integer); stdcall;
مصدر منها
المتغير الاول حولته من string الى PChar لتجنب اي مشاكل
ترجمت المكتبة باستعمال دلفي7
ربطت المكتبة دينامكيا باستعمال دلفي7
الاجراء يعمل بشكل طبيعي

المشكل عند ربط المكتبة بدلفي XE
الاجراء لا يعمل
حاولت تحويل المتغير من PChar الى PAnsiChar لكن دون جدوى

اود توضيح وحل المشكل
علما ان المكتبة مترجمة بدلفي7 وربط سيكون بدلفي XE
والاجراء في المكتبة بهذا الشكل
procedure SendData(Data: PChar; Count: Integer); stdcall;


استخدام مكتبة dll مبرمجة بدلفي 7 ودلفي XE - Najy Ibraheem - 18-02-2014

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

في دلفي 7 النوع PChar هو Pointer to Char. و لكن أعتقد أنه من دلفي 2010 فما فوق فإن PChar هو Pointer to WideChar.

لهذا، و لغرض استعماله مع Delphi XE اجعل نوع البارامتر Data من النوع PWideChar و أعد تصريف الـ DLL.

و السلام.


استخدام مكتبة dll مبرمجة بدلفي 7 ودلفي XE - dztr - 19-02-2014

لم تنجح PWideChar و PAnsiChar
هل من توضيح


استخدام مكتبة dll مبرمجة بدلفي 7 ودلفي XE - SMP3 - 19-02-2014

ضع الكود الذي تستخدمه من ال xe .


استخدام مكتبة dll مبرمجة بدلفي 7 ودلفي XE - dztr - 19-02-2014

السلام عليكم
لقد وجدت حلا
كما ذكرت سابقا الاجراء في المكتبة بهذا الشكل
procedure SendData(Data: PChar; Count: Integer); stdcall;
تم تعريفه في دلفي XE
بهذا الشكل
procedure SendData(Data: PَAnsiChar; Count: Integer); stdcall;
عند التمرير
استعملت
SendData(PَAnsiChar(AnsiString(Data)), Count); stdcall;
والحمد لله توصلت للحل
SMP3 كتب :ضع الكود الذي تستخدمه من ال xe .
لقد وضعت كل شيء Big Grin
ممكن توصيح ولو بسيط لما حدث
وهل توجد حلول اخرى