システムを作成するときに、Delphi6 で作成された DLL のパラメーターが文字列型であるため、C# で DLL を呼び出すことができないという問題が発生しました。その後、オンラインで関連情報を検索しましたが、それでも結果は見つかりませんでした。いろいろ考えた結果、解決できたので皆さんと喜びを分かち合いたいと思いこの記事を書きました。
dellphi dll ファイル:
//////////////////////////////////////////////// /// //////////////////
ライブラリmydll;
用途
sysutils、
クラス。
{$r *.res}
関数 out_char(str1:pchar;str2:pchar):pchar;stdcall;
変数
一時:pchar;
始める
getmem(temp,length(str1)+length(str2)+1);
strcopy(temp,str1);
strcat(temp,str2);
結果 := 温度;
終わり;
輸出
out_char;
始める
終わり。
//////////////////////////////////////////////// /// /////////////
C# でメソッドを呼び出す場合:
[dllimport(mydll.dll)] public static extern string out_char(string str1,string str2);
次に、文字列型データを渡すために dll が実装されます。
はぁ〜〜〜〜〜〜〜