Delphiで作成したプログラムが長くなったため(そして、C#でも使いたいため)、一部をDelphiでDLL化しています。
作成したDLLはC#のプログラムからは正常に(たぶん)動作するのですが、Delphiから使おうとすると(実行すると)エラーになります。(エラーメッセージはaccess violation at 0x00000000)
文字コードが一致していないとも思うのですが、よくわかりません。
動作確認のためShowMessageで表示させています。
//DLLの中身(主要部だけ)
function conv_date(str_address:PWChar;buffsize:Integer):bool;stdcall;
begin
str := string(str_address);
ShowMessage(str_address);//動作確認のため--> 完全に文字化け
ShowMessage(IntToStr(buffsize));//動作確認のため--> 6070170
//処理
...
StrCopy(str_address,PChar(str));
result := true;
end;
//DLL確認プログラム
function conv_date(buff:PWChar;buffsize:Integer):String;external 'RT110.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := string(conv_date(PWChar('123456'),10));//データおよびbuffsizeは適当 ここでエラー
end;
Connect with Us