(プログラム初心者)リンカーのエラー

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ゆうchin
記事: 5
登録日時: 1ヶ月前

(プログラム初心者)リンカーのエラー

#1

投稿記事 by ゆうchin » 1週間前

コード:

#include "DxLib.h"

int map[15][20] = {
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0},
 {1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1},
 {1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1},
};

int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_  HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd) {
	
	int x = 200;
	int y = 384;
	int pj;
	bool PR, PL,  JumpFlag = false;
	char img;
	int count = 0;

	ChangeWindowMode(TRUE);//非全画面にセット
	SetAlwaysRunFlag(true);
	SetDrawScreen(DX_SCREEN_BACK);//描画先を裏画面に 
	SetGraphMode(640, 480, 16);

	if (DxLib_Init() == -1) { return -1; }//初期化に失敗時にエラーを吐かせて終了

	int main3_1 = LoadGraph("pic\\chara_main3.png");
	int main3_move1 = LoadGraph("pic\\chara_main3_move1.png");
	int main3_move2 = LoadGraph("pic\\chara_main3_move2.png");
	int main3_move3 = LoadGraph("pic\\chara_main3_move3.png");
	int block = LoadGraph("pic\\block.png");

	while (1) {
		count++;

		if (y >= 384) { pj = 10; y -= 3;} // ジャンプ可能回数

		if (CheckHitKey(KEY_INPUT_RIGHT) > 0 && 0 < count%15 && count%15 <= 5) { img = main3_move3; }
		else if (CheckHitKey(KEY_INPUT_RIGHT) > 0 && 5 < count % 15 && count % 15 <= 10) { img = main3_move2; }
		else if (CheckHitKey(KEY_INPUT_RIGHT) > 0 && 10 < count % 15 && count % 15 <= 15) { img = main3_move1; }
		else if (CheckHitKey(KEY_INPUT_LEFT) > 0 && 0 < count % 15 && count % 15 <= 5) { img = main3_move1; }
		else if (CheckHitKey(KEY_INPUT_LEFT) > 0 && 5 < count % 15 && count % 15 <= 10) { img = main3_move2; }
		else if (CheckHitKey(KEY_INPUT_LEFT) > 0 && 10 < count % 15 && count % 15 <= 15) { img = main3_move3; }


		if (CheckHitKey(KEY_INPUT_RIGHT) == 1 || CheckHitKey(KEY_INPUT_D) == 1) { PR = true; }
		else { PR = false; }
		if (CheckHitKey(KEY_INPUT_LEFT) == 1 || CheckHitKey(KEY_INPUT_A) == 1) { PL = true; }
		else { PL = false; }
		if (CheckHitKey(KEY_INPUT_UP) == 1 || CheckHitKey(KEY_INPUT_W) == 1) { JumpFlag = true; }
		else {
			JumpFlag = false;
		}
		
		if (PR == true) { x += 3; }
		if (PL == true) { x -= 3; }
		if (JumpFlag == true) {
			for (int a = 0; a < 6; a++) {
				pj -= 1;
				y += 5;
			}
		}

		ClearDrawScreen();
		DrawGraph(x, y, img, TRUE);
		for (int a = 0; a < 15; a++) {
			for (int b = 0; b < 20; b++) {
				switch (map[a][b]) {
				case 1:
					DrawGraph(b * 32, a * 32, block, FALSE);
					break;
				}
			}
		}

		ScreenFlip();

		if (CheckHitKey(KEY_INPUT_ESCAPE) > 0) break;
		if (ProcessMessage() < 0) break;
		Sleep(16);
	}
	DxLib_End();
	return 0;
}
このような物理演算もあまり気にしないような練習用プログラムを書いてみたのですが、LNK2019 未解決の外部シンボル_main が関数 "int_cdecl invoke main(void)" (?invoke_main @@ YAHXZ) で参照されました。というものとLNK1120 1件の未解決の外部参照 という二つのエラー出てきてしまい、実行も出来ずに良くわかりません。調べてみても、リンカーのエラーということだけ辛うじてわかる程度でした。もしよければ、解決方法又は原因など教えてください。よろしくお願いします。

アバター
usao
記事: 1564
登録日時: 6年前

Re: (プログラム初心者)リンカーのエラー

#2

投稿記事 by usao » 1週間前

作ったプロジェクトの種類が問題なのではないでしょうか.
「Win32コンソールアプリケーション」を作ったのでは?
「Win32アプリケーション」を選んでプロジェクトを作ってそのコードをビルドしてみてはどうでしょう.

かずま

Re: (プログラム初心者)リンカーのエラー

#3

投稿記事 by かずま » 1週間前

Visual Studio を使っているんですよね。

ソリューションエクスプローラの中のプロジェクト名を右クリックして、
一番下の「プロパティ」を開いてください。
「構成プロパティ」の「リンカ―」の「システム」を選び、
「サブシステム」を「Windows(/SUBSYSTEM:WINDOWS) に切り替えてみてください。

「コンソール(/SUBSYSTEM:CONSOLE) のままでやりたいのなら、
ソースの int WINAPI WinMain(......) { を
int main() { に変えてみてください。

ゆうchin
記事: 5
登録日時: 1ヶ月前

Re: (プログラム初心者)リンカーのエラー

#4

投稿記事 by ゆうchin » 1週間前

無事解決出来ました。お二人方とも有難うございました。

かずま

Re: (プログラム初心者)リンカーのエラー

#5

投稿記事 by かずま » 1週間前

ゆうchin さんが書きました:
1週間前
無事解決出来ました。お二人方とも有難うございました。
何が悪かったのか。
どの方法で解決したのかを詳しく書いてください。

ゆうchin
記事: 5
登録日時: 1ヶ月前

Re: (プログラム初心者)リンカーのエラー

#6

投稿記事 by ゆうchin » 1週間前

すいません。かずまさんの方法を試したらエラーが消えたのでリンカーのサブシステムのミスだったと推測できます。

返信

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