投稿日 | : 2006/07/03(Mon) 13:44 |
投稿者 | : かずちん |
Eメール | : |
URL | : |
タイトル | : 調べてみました |
> > ただ最初の引数を設定する際にStringのバイト数を設定する必要性がわかっていないのでそこ
ら辺
は
> > 自分で調べてみようと思います。
> どうぞ。「Visual Basicにおける文字列の扱い、特にメモリ管理」がキーワードかな。
> Dim Buf As String
> Buf = Space(1024)
> でもいいですよ。
ダンボさんに提示していただいたキーワードを元に調べてみました。
http://www.gogomonkey.2y.net/prog/aboutBSTR.html
http://www.gogomonkey.2y.net/prog/useAPI_fromVB.html
上記サイトから引用====================================================================
Win32API 関数から文字列を受ける場合、VB 側が確保したメモリ領域に API 関数が(機械的に)
文字列を書き込んでいきますが、用意した文字列変数のサイズが小さいと
致命的なエラー(一般保護エラー)になります。十分な領域を確保する必要が有ります。
======================================================================================
これは初めて知りました。文字列の場合は事前にメモリ確保をしないと受け取れないんですね。
今までAPI関数を使用する際は使用方法を確認するだけで、引数や戻り値について細かく調べないで
使っていました。これからはちゃんと確認してから使っていきたいと思います。