ページ 11

エラーが取れません

Posted: 2014年6月28日(土) 01:21
by ついうくん
[code]


#include "DxLib.h"

int px=320,py=240;
int y_tmp=0,y_prev=0;
bool p_flag=true;
char Key[256];
float speed=1.0f;
int mode=0;
int h_color=(255,0,0);
int color=GetColor(255,255,255);
int haikei,player[16];
int xcount=0,ycount=0;
int ix=0,iy=0,result=0;


void title(){

DrawGraph(0,0,haikei,FALSE);
DrawString(240,270,"ゲーム:G",color);
DrawString(240,290,"コンフィグ:c",color);
DrawString(240,310,"終了:esc",color);

if(Key[KEY_INPUT_G]==1) mode = 1;

if(Key[KEY_INPUT_C]==1) mode = 2;
}


void pmove(){
if(Key[KEY_INPUT_LEFT]==1||Key[KEY_INPUT_RIGHT==1]){
if(Key[KEY_INPUT_UP]==1 || Key[KEY_INPUT_DOWN] ==1){
speed=0.71f;
}else{
speed=1.0f;
}

}else if(Key[KEY_INPUT_UP]==1 || Key[KEY_INPUT_DOWN]==1){
speed=1.0f;
}

if(Key[KEY_INPUT_LEFT]==1){
px-=(int)4*speed;
}

if(Key[KEY_INPUT_RIGHT]==1){
px+=(int)4*speed;
}

if(px<=0) px=0;
else if(px>=640-18) px=640-18;

if(py<=0) py=0;
else if(py>=640-18) py=640-18;

if(p_flag==true){
y_tmp=py;
py+=(py-y_prev)+1;
y_prev=y_tmp;
if(py==360)
p_flag==false;
}

if(Key[KEY_INPUT_SPACE]==1&&p_flag==false){
p_flag=1;
y_prev=py;
py=py-20;
}

if(Key[KEY_INPUT_LEFT]==1){
if(xcount>0)
xcount=0;
xcount--;

}

if(Key[KEY_INPUT_RIGHT]){
if(xcount<0)
xcount=0;
xcount++;
}

ix=abs(xcount)%30/10;
iy=abs(ycount)%30/10;

if(xcount>0){
ix+=3;
result=ix;
}else
if(xcount<0){
ix+=9;
result=ix;
}

DrawGraph(px,py,player[result],TRUE);

if(Key[KEY_INPUT_LEFT]!=1&&Key[KEY_INPUT_RIGHT]!=1)
xcount=0;

DrawString(0,0,"M:メニュー画面",color);

if(Key[KEY_INPUT_M]==1) mode=0;
}


int WINAPI WinMaion( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);

if( DxLib_Init() == -1 ) return -1;

LoadDivGraph("キャラクタ10.png",16,4,4,32,32,player);
haikei=LoadGraph("メニュー背景.png");

SetDrawScreen( DX_SCREEN_BACK );

while(1){
ClearDrawScreen();
GetHitKeyStateAll(Key);

switch(mode){
case 0:
title();
break;
case 1:
pmove();
break;
default:
DxLib_End();
return 0;
break;
}

if(ProcessMessage()==-1) break;
ScreenFlip();

}

DxLib_End();
return 0;

}



[/code]



LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。


\Users\test\Downloads\GameProg\GameProg\Debug\GameProg.exe : fatal error LNK1120: 外部参照 1 が未解決です。

これを実行すると、このようなエラーが出て、いっこもとれません、何が原因なんでしょうか?

Re: エラーが取れません

Posted: 2014年6月28日(土) 02:12
by nation
このエラーは、○○という関数が呼ばれたけどその中身が無い時に出るエラーです。
今回の場合、WinMain関数が無い、と言うことになります。
もう一度自分のコードをよく見直してみましょう。
些細なミスほど気付きにくいものです。

Re: エラーが取れません

Posted: 2014年6月28日(土) 02:18
by ついうくん
以前はコレでも実行できたのですが、、、


このプロジェクトのある場所がおかしい、という可能性などあったりしますか?

Re: エラーが取れません

Posted: 2014年6月28日(土) 08:21
by box
ついうくん さんが書きました:

コード:

int WINAPI WinMaion( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
関数の名前が間違っているように見えます。

Re: エラーが取れません

Posted: 2014年6月28日(土) 08:52
by softya(ソフト屋)
プログラミングでの最大の敵は思い込みです。「合っている」と思い込むことで簡単にワナにハマります。
自分のコードを出来るだけ第三者の視点でみるようにしましょう。

>以前はコレでも実行できたのですが、、、
そんな事は絶対にありません。関数名を間違っています。

【補足】
codeタグの間違いはプレビューを使うことで事前確認できますので、確認をお願いします。

Re: エラーが取れません

Posted: 2014年6月28日(土) 12:57
by ついうくん
すみません、ありがとうございました


int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){

このようにすると、うまくいきました。