Beim Schreiben eines Systems ist ein Problem aufgetreten. Ich konnte eine in Delphi6 geschriebene DLL nicht in C# aufrufen, da die Parameter der DLL vom Typ Zeichenfolge waren. Dann habe ich online nach relevanten Informationen gesucht, aber immer noch keine Ergebnisse gefunden. Nach langem Nachdenken habe ich es nun gelöst. Ich schreibe diesen Artikel, um meine Freude mit euch allen zu teilen!
Dellphi-DLL-Datei:
////////////////////////////////////////////////////////////////////////////////////// /// //////////////////
Bibliothek mydll;
verwendet
Systemutils,
Klassen;
{$r *.res}
function out_char(str1:pchar;str2:pchar):pchar;stdcall;
var
temp:pchar;
beginnen
getmem(temp,length(str1)+length(str2)+1);
strcopy(temp,str1);
strcat(temp,str2);
Ergebnis := temp;
Ende;
Exporte
out_char;
beginnen
Ende.
////////////////////////////////////////////////////////////////////////////////////// /// /////////////
Aufrufende Methode in c#:
[dllimport(mydll.dll)] public static extern string out_char(string str1,string str2);
Dann wird die DLL implementiert, um Daten vom Typ String zu übergeben.
Haha~~~~~~~