喫茶XRAYトップページ
[
スレッド全体
]
[11458]
DLLの関数に文字列を渡す
返信
削除
2017/10/15 (日) 21:08:53
Mr.XRAY
DLL の関数を作成して,その関数で,DLL 側で文字列を受け取る時は,
基本的には PChar 型にしておいた方が無難です.
以下は簡単な例です.
動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) Pro です.
[参考]
[889] [08_DLL 内の関数で外部に文字列を渡す]
http://
mrxray.
on.
coocan.
jp/
Delphi/
plSample
s/
889_VCLS
tyleReso
urce.
htm#
08
//----------------- DLLの全コード-----------------------------------------
// ファイル名は DllTest_PChar.dpr
library DllTest_PChar;
uses
Windows,
SysUtils,
Dialogs;
function SetText2Dll(Buff: PChar):Bool; stdcall;
var
LText : string;
begin
LText := string(Buff);
ShowMessage(LText);
Result := True;
end;
exports
SetText2Dll;
end.
//----------------- テスト側のコード ------------------------------------------
implementation
{$R *.dfm}
function SetText2Dll(Buff: PChar):Bool; stdcall; external 'DllTest_PChar.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := BoolToStr(SetText2Dll('日本語'));
end;
[11459]
Re:DLLの関数に文字列を渡す
返信
削除
2017/10/15 (日) 21:13:49
Mr.XRAY
> DLL の関数を作成して,その関数で,DLL 側で文字列を受け取る時は,
> 基本的には PChar 型にしておいた方が無難です.
> 以下は簡単な例です.
[DLLとの文字列の受け渡しがうまくいきません ]
https://
forums.
embarcad
ero.
com/
thread.
jspa?
threadID
=
258840&
tstart=
0
というのがありますが,これでは他の方が動作を検証できません.
言い尽くされたことですが,動作確認用のプロジェクトを作成して
そのコードを提示すれば誰かが確認できます.
そうでなければ抽象的なアドバイスしかできません.
具体的なアドバイスはできません.
と書くと,何万行のプログラムなのでそういうことはできません.
という方もいますが.(笑)
[11474]
Re2:DLLの関数に文字列を渡す
返信
削除
2017/10/16 (月) 19:03:32
Mr.XRAY
> と書くと,何万行のプログラムなのでそういうことはできません.
> という方もいますが.(笑)
掲示板のサーバの負担を軽減するため,という方もいましたね.
結局いろいろ訊くためにスレッドがかなり長くなったことを記憶しています.
サーバにかなり負担となってしまったのかも知れません (^^
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82