別ウインドウで取得したデータがメインウインドウで利用できない

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
NON

別ウインドウで取得したデータがメインウインドウで利用できない

#1 投稿記事 by NON »

件名のとうりなのですが、文字を入力させるためのウインドウを出し、
ウインドウを閉じると、デバッグ画面ではちゃんと入力したとおりに
表示されます。しかし、「MsgBox」で表示させたり、別変数に代入しようとしたりすると、何も表示されなかったり、エラーが起きたりしてしまいます。
どうやったらデータを利用できるでしょうか・・・?
ケースケ
記事: 45
登録日時: 2005年5月31日(火) 23:46
お住まい: 愛知県
連絡する:

変数をきちんと確保していますか?

#2 投稿記事 by ケースケ »

変数をきちんと確保していないのが原因だと思うのですが。

hWnd: 文字を入力させるためのウインドウのハンドル(DWord)
Text: hWndに入力された文字を保存する変数(BytePtr)
Size: hWndに入力された文字数(Long)
として見てください。括弧の中は変数の型です。

コード: 全て選択


Size=GetWindowTextLength(hWnd)
Text=calloc(Size+1)   'これを忘れていませんか?(1)
GetWindowText(hWnd,Text,Size)
(1)の命令を忘れると、文字列を保存するエリアが確保されていない訳ですから、利用できなかったり、エラーになったりするのは当たり前ですよ。
NON

できました

#3 投稿記事 by NON »

ありがとうございます。出来ました。
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

Re: できました

#4 投稿記事 by Sinryow »

一応補足ですが,callocで用意したメモリ領域は,不要になったときにfreeをかけましょう。
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
返信する