[DxLib] GetKeyInputString()について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: [DxLib] GetKeyInputString()について

Re: [DxLib] GetKeyInputString()について

#3

by 悩める人 » 7年前

なるほど。あらかじめ領域を指定しておかなければいけなかったんですね。ありがとうございます。

Re: [DxLib] GetKeyInputString()について

#2

by V30 » 7年前

NULL値は、記憶領域がないよって意味になります。

http://dxlib.o.oo7.jp/function/dxfunc_input.html#R5N22
に、
引数 char *StrBuffer : 文字列を格納するバッファのアドレス
と書いてあるので、
バッファを作ってから関数を使えばいいと思いますよ。

つまり、

コード:

char text[1024];
みたいに文字列格納バッファ(記憶領域)を作って、
そいつを GetKeyInputString 関数に放り込めば良い
と思います。

[DxLib] GetKeyInputString()について

#1

by 悩める人 » 7年前

例えば、以下の例で問題が起きます。

コード:


#include <DxLib.h>

int main() {

	int x, y;
	TCHAR *text;
	int keyInput;
	int result;

	x = 320;
	y = 240;
	text = NULL;
	result = 0;

	DxLib_Init();

	keyInput = MakeKeyInput(16, false, false, false, false, false);
	SetActiveKeyInput(keyInput);

	while (!ProcessMessage() && !ClearDrawScreen() && !CheckHitKey(KEY_INPUT_ESCAPE)) {

		int result = CheckKeyInput(keyInput);

		GetKeyInputString(text, keyInput);

		if (text != NULL) {
			x = (640 - GetDrawStringWidth(text, GetStringLength(text))) / 2;
		}

		if (result == 0) {
			DrawKeyInputString(x, y, keyInput);

		}
		else {
			break;

		}

	}

	DeleteKeyInput(keyInput);

	DxLib_End();

}

※エラー処理は省略しています。

>GetKeyInputString(text, keyInput);
この部分でtextがNULLにしかなりません。

なぜですか?

ページトップ