error LNK2019: 未解決の外部シンボル と出てきます

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

error LNK2019: 未解決の外部シンボル と出てきます

#1

投稿記事 by ss » 10年前

現在、新・ゲームプログラミングの館を参考に複数のファイルに分けてコンパイルする方法を勉強しています

しかしエラーが出てきて困っています
使おうとしている変数が定義されていないらしいのですがよくわかりません
どうかよろしくお願いします

1>test.obj : error LNK2019: 未解決の外部シンボル "void __cdecl Key_test(void)" (?Key_test@@YAXXZ) が関数 _WinMain@16 で参照されました。
1>C:\~~\GameProg\Debug\GameProg.exe : fatal error LNK1120: 外部参照 1 が未解決です。

test.cpp

コード:

#include "DxLib.h"
#include "Player.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

		//ウィンドウモード変更と初期化と裏画面設定
		ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );

		while( ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 ){

			Key_test();
			//ここに処理を追加

		}

        DxLib_End();    // DXライブラリ終了処理
        return 0;
}
Keyboard.cpp

コード:

#include "DxLib.h"

static int m_Key[256];		// キーの入力状態格納変数

// キーの入力状態更新
void Keyboard_Update(){
	char tmpKey[256];				// 現在のキーの入力状態を格納する
	GetHitKeyStateAll( tmpKey );	// 全てのキーの入力状態を得る

	for( int i=0; i<256; i++ ){
		if( tmpKey[i] != 0 ){		// 1番のキーコードに対応するキーが押されたら
			m_Key[i]++;				// 加算
		} else {					// 押されていなければ
			m_Key[i] = 0;			// 0にする
		}
	}
}

// KeyCodeのキーの入力状態を取得する
int Keyboard_Get( int KeyCode ){
	return m_Key[ KeyCode ];	// KeyCodeの入力状態を返す
}
Keyboard.h

コード:

#ifndef DEF_KEYBOARD_H	// 二重include防止

#define DEF_KEYBOARD_H

// キーの入力状態を更新する
void Keyboard_Update();

// 引数のキーコードのキーの入力状態を返す
int Keyboard_Get( int KeyCode );

#endif
Player.cpp

コード:

#include "Keyboard.h"

void key_test(){

	if( Keyboard_Get( KEY_INPUT_UP	  ) > 0 ){
		DrawFormatString( 100, 100, GetColor(255, 255, 255), "上が押されています" );
	}
	if( Keyboard_Get( KEY_INPUT_DOWN  ) > 0 ){
		DrawFormatString( 100, 200, GetColor(255, 255, 255), "下が押されています" );
	}
}
Player.h

コード:

#ifndef DEF_PLAYER_H	// 二重include防止

#define DEF_PLAYER_H

// テスト
void Key_test();

#endif

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: error LNK2019: 未解決の外部シンボル と出てきます

#2

投稿記事 by みけCAT » 10年前

typoですね。
Player.cppの3行目を

コード:

void key_test(){
ではなく

コード:

void Key_test(){
に(関数名の先頭を大文字に)してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ss

Re: error LNK2019: 未解決の外部シンボル と出てきます

#3

投稿記事 by ss » 10年前

>>みけCATさん
ありがとうございました
できました
大文字と小文字を間違えていたなんて……

閉鎖

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