VB初心者質問スレPart2

このエントリーをはてなブックマークに追加
529デフォルトの名無しさん
>>525
まず「外部ライブラリ」関数がPASCAL呼び出しであるのが前提。

引数が(const)char*の場合はString型の変数をByValで渡せば良い。
この引数が参照用である場合は一切細工は要らないが、出力
(結果渡し)用である場合は
strBuff = Space(256)
などとして予め充分なサイズをアロケートしておき、かつ
NUL文字(Chr(0))以降を切り捨てるなどといった細工が必要。

戻り値がchar*ってのはやったことが無いけど
BSTR系のAPIでアロケートされた文字列でなければ、
直接Stringで受けるとまずいと思われ。
ひとまずポインタの値をLongで受けて、
lstrcpyを用いて引数経由でStringに格納すれば出来るだろう。
この場合、lstrcpyはLong(ポインタ)からStringへの変換関数
としてDeclareしておく。