- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:dllを使用しVB側に文字列を返す2)
VB側に文字列を返すためのdllを使用する方法
このQ&Aのポイント
- VCで作ったdllをVBを呼び出す事ができるようになりました。Declare宣言で疑問に思ったのですが、aはなぜ値渡しなのでしょうか?変数が書き換えられて戻ってくるので、byrefで指定していました。
- int型の数値をポインタで渡した場合はbyrefでうまくいきます。
- VCで作成したdllを使用してVB側で文字列を返す方法
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
VBのString型は ┌─────┬───────────┐ │文字列長さ│文字列データ・・・・・│ └─────┴───────────┘ という形式でメモリ上に確保されます。 つまり先頭2バイトにデータ長、その後に本当のデータが入っています。 Declare宣言でByRefにするとString型の先頭アドレス(文字列長さのアドレス)が渡されます。 一方、ByValにするとString型のデータ部分(文字列データのアドレス)が渡されます。
お礼
勉強になりました。ありがとうございました。