ฉันพบปัญหาเมื่อเขียนระบบ ฉันไม่สามารถเรียก DLL ที่เขียนใน Delphi6 ใน C# ได้เนื่องจากพารามิเตอร์ของ DLL นั้นเป็นประเภทสตริง จากนั้นฉันค้นหาข้อมูลที่เกี่ยวข้องทางออนไลน์ แต่ก็ยังไม่พบผลลัพธ์ หลังจากครุ่นคิดอยู่นาน ตอนนี้ฉันก็ได้แก้ไขมันแล้ว ฉันกำลังเขียนบทความนี้เพื่อแบ่งปันความสุขกับทุกคน!
ไฟล์ dllphi dll:
//////////////////////////////////////////////// ////////////////////////
ห้องสมุด mydll;
การใช้งาน
ระบบซิสเต็มส์,
ชั้นเรียน;
{$r *.เรส}
ฟังก์ชั่น out_char(str1:pchar;str2:pchar):pchar;stdcall;
var
อุณหภูมิ:pchar;
เริ่ม
getmem(อุณหภูมิ,ความยาว(str1)+ความยาว(str2)+1);
strcopy(อุณหภูมิ,str1);
strcat(อุณหภูมิ,str2);
ผลลัพธ์ := อุณหภูมิ;
จบ;
การส่งออก
out_char;
เริ่ม
จบ.
//////////////////////////////////////////////// /// ////////////////
วิธีการโทรใน c#:
[dllimport(mydll.dll)] สาธารณะสตริงภายนอกคงที่ out_char (สตริง str1, สตริง str2);
จากนั้นจึงใช้ dll เพื่อส่งข้อมูลประเภทสตริง
ฮ่าๆ~~~~~~~