VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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関数を使用する際は使用方法を確認するだけで、引数や戻り値について細かく調べないで
使っていました。これからはちゃんと確認してから使っていきたいと思います。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -