エラー内容は、デバックしてウィンドウが表示されると数秒後に勝手に閉じてしまうことです。
また、デバックは問題なく出来るのですがエラーメッセージで「値を返さないコントロールパスがあります」と出ます。これも関係しているのでしょうか。
※どこが原因がわからないので、今書いてある文を全部貼ります。なので少し長いかもしれません。
//main.cpp
#include "DxLib.h"
#include "Key.h"
#include "mode.h"
#include "title.h"
#include "play.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen( DX_SCREEN_BACK );
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
switch(mode_func(0,0)){
case 0 : title_main(); break;
case 1 : play_main(); break;
case 10 : DxLib_End(); break;
}
DxLib_End();
return 0;
}
}
//title.cpp
#include "DxLib.h"
#include "key.h"
#include "mode.h"
static int m_y=305;
void title_menu(){
DrawString( 80 , m_y , "■" ,GetColor(255,255,255) );
DrawString( 100 , 300 , "START" ,GetColor(255,255,255) );
DrawString( 100 , 320 , "EXIT" ,GetColor(255,255,255) );
}
void title_key(){
if(Key_Get(KEY_INPUT_DOWN)==1 ||(Key_Get(KEY_INPUT_DOWN)%5==0 && Key_Get(KEY_INPUT_DOWN)>20)){
// たった今押したか、20カウンター以上押しっぱなしかつ5回に一度
m_y+=20;
if(m_y==345) //y座標が一番下なら
m_y=305; //選択座標を一番上に
}
if(Key_Get(KEY_INPUT_UP)==1 ||(Key_Get(KEY_INPUT_UP)%5==0 && Key_Get(KEY_INPUT_UP)>20)){
// たった今押したか、20カウンター以上押しっぱなしかつ5回に一度
m_y-=20;
if(m_y==285) //y座標が一番上なら
m_y=305; // 選択座標を一番上に
}
if(m_y==305){
if(Key_Get(KEY_INPUT_RETURN)==1){
mode_func(1,1);}
}
if(m_y==325){
if(Key_Get(KEY_INPUT_RETURN)==1){
mode_func(1,10);}
}
}
void title_main(){
title_menu();
title_key();
}
//play.cpp
#include "DxLib.h"
void play_main(){
DrawString( 0 , 0 , "( ̄ー ̄)bグッ!" ,GetColor(255,255,255) );
}
//key.cpp
#include "DxLib.h"
static int m_Key[256]; // キーの入力状態格納用変数
// キーの入力状態更新
void Key_Update(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
m_Key[i]++; // 加算
} else { // 押されていなければ
m_Key[i] = 0; // 0にする
}
}
}
// KeyCodeのキーの入力状態を取得する
int Key_Get( int KeyCode ){
return m_Key[ KeyCode ]; // KeyCodeの入力状態を返す
}
//key.h
#ifndef DEF_KEY_H //二重include防止
#define DEF_KEY_H
// キーの入力状態を更新する
void Key_Update();
// 引数のキーコードのキーの入力状態を返す
int Key_Get( int KeyCode );
#endif
//mode.cpp
int mode_func(int mode_sel, int mode_new)
{
static int m_mode = 0; //現在のmode(最初はゼロ)
if(mode_sel == 0)
return m_mode; //mode_sel == 0ならmode_nowをそのまま返す。
else if(mode_sel == 1)
m_mode = mode_new;
}
//mode.h
#ifndef DEF_MODE_H
#define DEF_MODE_H
int mode_func(int mode_sel, int mode_new);
#endif
わかる方居ましたら教えてください。
よろしくお願いします。