龍神プログラミングの館 8章

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

龍神プログラミングの館 8章

#1

投稿記事 by qhqh » 14年前

龍神プログラミングの館 8章でのことなのですが、最後にビルドをすると
main.cpp(33): error C3861: 'CheckStateKey': 識別子が見つかりませんでした
と出てビルドが成功しません、どこに識別子を加えればいいのでしょうか?
一応function.hにGLOBAL void CheckStateKey();と加えてやってみましたが変わりませんでした。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神プログラミングの館 8章

#2

投稿記事 by softya(ソフト屋) » 14年前

key.cppにあるはずですが、CheckStateKeyの名前が間違っていませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

qhqh

Re: 龍神プログラミングの館 8章

#3

投稿記事 by qhqh » 14年前

見た限りでは間違ってないと思いますが、自分のkey.cppのコピーです。

コード:

#include "../include/GV.h"

unsigned int stateKey[256];

int GetHitKeyStateAll_2(){
    char GetHitKeyStateAll_Key[256];
    GetHitKeyStateAll( GetHitKeyStateAll_Key );
    for(int i=0;i<256;i++){
        if(GetHitKeyStateAll_Key[i]==1) stateKey[i]++;
        else                            stateKey[i]=0;
    }
    return 0;
}

int CheckStateKey(unsigned char Handle){
        return stateKey[Handle];
}

//パッドの入力状態を格納する変数
pad_t pad;

//引数1と引数2のうち大きい方を引数1に代入する
void input_pad_or_key(int *p, int k){
	   *p = *p>k ? *p : k;
}

//パッドとキーボードの両方の入力をチェックする関数
void GetHitPadStateAll(){
	    int i,PadInput,mul=1;
		PadInput = GetJoypadInputState( DX_INPUT_PAD1 );//パッドの入力状態を取得
		for(i=0;i<16;i++){
			    if(PadInput & mul)  pad.key[i]++;
				else                pad.key[i]=0;
				mul*=2;
		}
		input_pad_or_key(&pad.key[configpad.left]   ,CheckStatekey(KEY_INPUT_LEFT    ));
		input_pad_or_key(&pad.key[configpad.up]     ,CheckStatekey(KEY_INPUT_UP      ));
		input_pad_or_key(&pad.key[configpad.right]  ,CheckStatekey(KEY_INPUT_RIGHT   ));
		input_pad_or_key(&pad.key[configpad.down]   ,CheckStatekey(KEY_INPUT_DOWN    ));
		input_pad_or_key(&pad.key[configpad.shot]   ,CheckStatekey(KEY_INPUT_Z       ));
		input_pad_or_key(&pad.key[configpad.bom]    ,CheckStatekey(KEY_INPUT_X       ));
		input_pad_or_key(&pad.key[configpad.slow]   ,CheckStatekey(KEY_INPUT_LSHIFT  ));
		input_pad_or_key(&pad.key[configpad.start]  ,CheckStatekey(KEY_INPUT_ESCAPE  ));
		input_pad_or_key(&pad.key[configpad.change] ,CheckStatekey(KEY_INPUT_LCONTROL));
}

//渡されたパッドキー番号の入力状態を返す。返り値が-1なら不正
int CheckStatePad(unsigned int Handle){
	    if(0<=Handle && Handle<PAD_MAX){
			    return pad.key[Handle];
		}
		else{
			    printfDx("CheckStatePadに渡した値が不正です\n");
				return -1;
		}
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神プログラミングの館 8章

#4

投稿記事 by softya(ソフト屋) » 14年前

あっ、エラーを見間違えてました。
function.h
の方を間違っていませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 龍神プログラミングの館 8章

#5

投稿記事 by ISLe » 14年前

qhqh さんが書きました:一応function.hにGLOBAL void CheckStateKey();と加えてやってみましたが変わりませんでした。
引数と戻り値の型が違いますね。

qhqh

Re: 龍神プログラミングの館 8章

#6

投稿記事 by qhqh » 14年前

function.hに追加してみたのは最初の方に書いたやつと別に加えてみたということです。自分のfunction.hのコピーです。

コード:

//graph.cpp
        //描画メイン
        GLOBAL void graph_main();

//key.cpp
        //現在のキー入力処理を行う
        GLOBAL int GetHitKeyStateAll_2();
        //受け取ったキー番号の現在の入力状態を返す
        GLOBAL int CheckStatekey(unsigned char Handle);
//laod.cpp
        //データのロード
        GLOBAL void load();

		GLOBAL void first_ini();

		GLOBAL void calc_ch();

		GLOBAL void GetHitPadStateAll();
		GLOBAL int CheckStatePad(unsigned int Handle);

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神プログラミングの館 8章

#7

投稿記事 by softya(ソフト屋) » 14年前

codeタグを追加しました。


GLOBAL int CheckStatekey(unsigned char Handle);
は間違っています。正しくは、
GLOBAL int CheckStateKey(unsigned char Handle);
です。
keyの大文字と小文字の違いなんですけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: 龍神プログラミングの館 8章

#8

投稿記事 by Dixq (管理人) » 14年前

配布しているプロジェクトと全く同じように書いたはずなのにエラーが出る時は、
WinMergeなどのコードの比較が出来るソフトなどを使用して比較してみると良いと思いますよ。

qhqh

Re: 龍神プログラミングの館 8章

#9

投稿記事 by qhqh » 14年前

解決しました!付き合っていただいた皆さんありがとうございました。
小文字と大文字の違いだなんて些細な事でお騒がせしてすいませんでした;;

閉鎖

“C言語何でも質問掲示板” へ戻る