我在寫一個系統時遇到了一個問題,無法在c#中呼叫delphi6寫的dll,只因為dll的參數是string類型的。然後在網路上找相關的資料,還是沒有結果。經過我的再三琢磨,現在已經解決,特寫這篇文章與大家分享我的喜愉!
dellphi dll檔:
////////////////////////////////////////////////// /////////////////
library mydll;
uses
sysutils,
classes;
{$r *.res}
function out_char(str1:pchar;str2:pchar):pchar;stdcall;
var
temp:pchar;
begin
getmem(temp,length(str1)+length(str2)+1);
strcopy(temp,str1);
strcat(temp,str2);
result := temp;
end;
exports
out_char;
begin
end.
////////////////////////////////////////////////// ////////////
在c#中調用方式:
[dllimport(mydll.dll)] public static extern string out_char(string str1,string str2);
然後就實作了dll 傳string類型資料。
呵呵~~~~~~~