• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:dllを使用しVB側に文字列を返す2)

VB側に文字列を返すためのdllを使用する方法

このQ&Aのポイント
  • VCで作ったdllをVBを呼び出す事ができるようになりました。Declare宣言で疑問に思ったのですが、aはなぜ値渡しなのでしょうか?変数が書き換えられて戻ってくるので、byrefで指定していました。
  • int型の数値をポインタで渡した場合はbyrefでうまくいきます。
  • VCで作成したdllを使用してVB側で文字列を返す方法

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

VBのString型は ┌─────┬───────────┐ │文字列長さ│文字列データ・・・・・│ └─────┴───────────┘ という形式でメモリ上に確保されます。 つまり先頭2バイトにデータ長、その後に本当のデータが入っています。 Declare宣言でByRefにするとString型の先頭アドレス(文字列長さのアドレス)が渡されます。 一方、ByValにするとString型のデータ部分(文字列データのアドレス)が渡されます。

sha-girl
質問者

お礼

勉強になりました。ありがとうございました。