لقد واجهت مشكلة عند كتابة نظام لم أتمكن من استدعاء DLL مكتوب في Delphi6 في C# لأن معلمات DLL كانت من نوع السلسلة. ثم بحثت عن المعلومات ذات الصلة عبر الإنترنت، لكن لم أجد أي نتائج. وبعد الكثير من التفكير، قمت الآن بحل المشكلة، وأنا أكتب هذا المقال لأشارككم فرحتي جميعًا!
ملف دلفي dll :
////////////////////////////////////////////////////////////////// /// //////////////////
مكتبة mydll.
الاستخدامات
سيسوتيلز,
الطبقات؛
{$r *.res}
وظيفة out_char(str1:pchar;str2:pchar):pchar;stdcall;
فار
درجة الحرارة:pchar;
يبدأ
getmem(temp,length(str1)+length(str2)+1);
strcopy(temp,str1);
strcat(درجة الحرارة,str2);
النتيجة := درجة الحرارة؛
نهاية؛
صادرات
out_char;
يبدأ
نهاية.
////////////////////////////////////////////////////////////////// /// /////////////
طريقة الاتصال في لغة c#:
[dllimport(mydll.dll)] السلسلة الخارجية الثابتة العامة out_char(string str1,string str2);
ثم يتم تنفيذ dll لتمرير بيانات نوع السلسلة.
هههه ~~~~~~~~