HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0115
Hiroaki SoftwareDLLから文字列を正常に取得する方法4解決


Hiroaki Software

リンク

2009/1/15(Thu) 17:52:35|NO.22846

今回の質問は題名の通り
DLLから文字列を正常に取得する方法
です。
でなにも作成せずに聞かれては答えようがないと思われますので
テスト的に作成しました
DLLの作成言語はDelphiです

DLLのソース:
library Project2;
uses
SysUtils,windows,
Classes;

{$R *.res}
function test(a:pshortstring):integer;stdcall;
var
b:shortstring;
begin
b:='Hiroaki Software';
test:=0;
MoveMemory(a,@b,Sizeof(shortstring));


end;

exports
test;
begin
end.

そこで作成されたDLLをHSP側で以下のように呼び出しました。


#uselib "project2.dll"
#func test "test" sptr
sdim a,6500
test varptr(a)
print a


これで良さそうですが、
変数aに "Hiroaki Software"の前後に変なものがくっ付いています

これを対処する方法ありますか?



この記事に返信する


s

リンク

2009/1/15(Thu) 18:46:54|NO.22850

なぜDLLに拘るのでしょうか?



New Monkey

リンク

2009/1/15(Thu) 19:40:02|NO.22851

試してませんが文字列にcharの配列を使えばいいのでは?



SYAM

リンク

2009/1/15(Thu) 20:00:56|NO.22853

HSPからDLLコールする以前に、Delphiの勉強が足りていないようです。
shortstringとはどんなデータなのかを調べてみてください。
また、文字列とはどんなデータなのかも。



Hiroaki Software

リンク

2009/1/16(Fri) 15:24:57|NO.22885

>なぜDLLに拘るのでしょうか?
そうでした、拘りすぎでしたね

とりあえずこの件に関して出直してきます。

ということで解決とします



ONION software Copyright 1997-2023(c) All rights reserved.