アスペクト比を保ったままフルスクリーンにしたい

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

アスペクト比を保ったままフルスクリーンにしたい

#1

投稿記事 by ika » 8年前

コード:

	SetGraphMode(640, 480, 32); 

	if(MessageBox(NULL,"フルスクリーンで起動しますか?","起動オプション",MB_YESNO)==IDYES){
		//SetWindowSizeExtendRate(16/9);
		ChangeWindowMode(0);
	}else{
		ChangeWindowMode(1);
	}
現在このようなコードを使用して640*480の画面で作成したプログラムをフルスクリーンにしているのですが
横長になってしまうので以下のフリーソフトのようにアスペクト比を保ったままフルスクリーンにしたいのですが可能でしょうか
http://bygzam.seesaa.net/article/112085773.html

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

Re: アスペクト比を保ったままフルスクリーンにしたい

#2

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

こちらが参考になりますでしょうか。ちょっと大変ですが。
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2506
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ika

Re: アスペクト比を保ったままフルスクリーンにしたい

#3

投稿記事 by ika » 8年前

リンク先のコードを龍神録の60章のmain.cpp組み込んでみたのですがウィンドウが表示されません
エラー等はなくタスクマネージャーには表示されていました
何がいけなかったのでしょうか

コード:

#define GLOBAL_INSTANCE 
#include "../include/GV.h"

//ループで必ず行う3大処理
int ProcessLoop(){
	if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
	if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
	GetHitKeyStateAll_2();//現在のキー入力処理を行う
	GetHitPadStateAll();  //現在のパッド入力処理を行う
	return 0;
}

#define SCREEN_W		(640)			//ゲーム自体の画面の横幅
#define SCREEN_H		(480)			//ゲーム自体の画面の縦幅

// 表示タイプ
int hyouji_type;
// 整数倍表示の時のレターボックスの大きさ
int letterboxsize_x;
int letterboxsize_y;
// アスペクト比保持の時のレターボックスの大きさ
int letterboxsize_n_x;
int letterboxsize_n_y;
// ディスプレイ解像度
int disp_x;
int disp_y;
// 描画スクリーン
int main_screen;

//エンターキーを押したフレームカウント
int enter;

void letter_box(){
	// ディスプレイ解像度取得
	disp_x = GetSystemMetrics(SM_CXSCREEN);
	disp_y = GetSystemMetrics(SM_CYSCREEN);
	if( disp_x / (float)SCREEN_W >= disp_y / (float)SCREEN_H ){// 描画画面の比率より横に長いか同じ場合
		letterboxsize_y		= ( disp_y % SCREEN_H ) / 2;
		letterboxsize_x		= ( disp_x - ( disp_y / SCREEN_H ) * SCREEN_W ) / 2;
		letterboxsize_n_y	= 0;
		letterboxsize_n_x	= ( disp_x - ( disp_y * SCREEN_W / SCREEN_H ) ) / 2;
	}
	else{// 描画画面の比率より縦に長い場合
		letterboxsize_x		= ( disp_x % SCREEN_W ) / 2;
		letterboxsize_y		= ( disp_y - ( disp_x / SCREEN_W ) * SCREEN_H ) / 2;
		letterboxsize_n_x	= 0;
		letterboxsize_n_y	= ( disp_y - ( disp_x * SCREEN_H / SCREEN_W ) ) / 2;
	}
}
void screen_hyouji(){
	switch(hyouji_type){
	case 0:{//オリジナル
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawRotaGraph( disp_x / 2, disp_y / 2, 1.0f, 0.0f, main_screen , FALSE , FALSE ) ;
		SetDrawScreen( main_screen );
		break;
			}
	case 1:{//整数倍
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawExtendGraph(letterboxsize_x,letterboxsize_y,disp_x - letterboxsize_x,disp_y - letterboxsize_y,main_screen, FALSE );
		SetDrawScreen( main_screen );
		break;
			}
	case 2:{//アスペクト比保持
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawExtendGraph(letterboxsize_n_x,letterboxsize_n_y,disp_x - letterboxsize_n_x,disp_y - letterboxsize_n_y,main_screen, FALSE );
		SetDrawScreen( main_screen );
		break;
			}
	case 3:{//フル
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawExtendGraph(0,0,disp_x,disp_y,main_screen, FALSE );
		SetDrawScreen( main_screen );
		break;
			}
	}
}

int Enter_Check(){
	if(CheckHitKey( KEY_INPUT_RETURN ))
		enter++;
	else
		enter = 0;
	return enter;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
	letter_box();
	SetGraphMode( disp_x , disp_y , 32 );
	main_screen = MakeScreen( SCREEN_W, SCREEN_H );// 描画用のスクリーン作成
	SetDrawScreen( main_screen );// 描画するスクリーンを変更
	if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化

	while(ProcessLoop()==0){//メインループ
		if( Enter_Check() == 1 ){// エンターキーを押した時のみ
			hyouji_type++;
			if( hyouji_type > 3 )
				hyouji_type = 0;
		}
		music_ini();
		switch(func_state){
			case 0://初回のみ入る処理
				load();		//データロード
				first_ini();//初回の初期化
				func_state=99;
				break;
			case 99://STGを始める前に行う初期化
				ini();
				load_story();
				func_state=100;
				break;
			case 100://通常処理
								 enter_func_tm("最初");
				calc_ch();       enter_func_tm("キャラ計算");
				ch_move();       enter_func_tm("キャラ移動");
				cshot_main();    enter_func_tm("自機ショットメイン");
				enemy_main();	 enter_func_tm("敵処理メイン");
				boss_shot_main();enter_func_tm("ボスショットメイン");
				shot_main();	 enter_func_tm("ショットメイン");
				out_main();  	 enter_func_tm("当たり判定");
				effect_main();   enter_func_tm("エフェクトメイン");
				calc_main();	 enter_func_tm("計算メイン");
				graph_main();    enter_func_tm("描画メイン");
				bgm_main();		 enter_func_tm("BGMメイン");
				if(boss.flag==0)
					stage_count++;
				break;
			default:
				printfDx("不明なfunc_state\n");
				break;
		}
		music_play();			 enter_func_tm("音楽再生");
		fps_wait();				 enter_func_tm("待機した時間",1);
		if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
		screen_hyouji();
		ScreenFlip();//裏画面反映
		count++;

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


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

Re: アスペクト比を保ったままフルスクリーンにしたい

#4

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

元のコードでは正常に動きますか?
もし動くなら何らかのミスがあると思いますが、いま検証している時間がないので、元のコードのまま問題ないか確認をお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ika

Re: アスペクト比を保ったままフルスクリーンにしたい

#5

投稿記事 by ika » 8年前

はい、元のコードでは正常に動作しました

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

Re: アスペクト比を保ったままフルスクリーンにしたい

#6

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

ざっと見なおした所、hyouji_typeが初期化されていないのと、
main_screen = MakeScreen( SCREEN_W, SCREEN_H );// 描画用のスクリーン作成
SetDrawScreen( main_screen );// 描画するスクリーンを変更
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
の初期化の順番が変ですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

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

Re: アスペクト比を保ったままフルスクリーンにしたい

#7

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

ざっと見なおした所、hyouji_typeが初期化されていないのと、
main_screen = MakeScreen( SCREEN_W, SCREEN_H );// 描画用のスクリーン作成
SetDrawScreen( main_screen );// 描画するスクリーンを変更
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
の初期化の順番が変ですね。DxLib_Initが先じゃないとマズイです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ika

Re: アスペクト比を保ったままフルスクリーンにしたい

#8

投稿記事 by ika » 8年前

少し改良してみたのですがまだウィンドウが表示されません
何がいけなかったのでしょうか

コード:

#define GLOBAL_INSTANCE 
#include "../include/GV.h"

//ループで必ず行う3大処理
int ProcessLoop(){
	if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
	if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
	GetHitKeyStateAll_2();//現在のキー入力処理を行う
	GetHitPadStateAll();  //現在のパッド入力処理を行う
	return 0;
}

#define SCREEN_W		(640)			//ゲーム自体の画面の横幅
#define SCREEN_H		(480)			//ゲーム自体の画面の縦幅

// 表示タイプ
int hyouji_type;
// 整数倍表示の時のレターボックスの大きさ
int letterboxsize_x;
int letterboxsize_y;
// アスペクト比保持の時のレターボックスの大きさ
int letterboxsize_n_x;
int letterboxsize_n_y;
// ディスプレイ解像度
int disp_x;
int disp_y;
// 描画スクリーン
int main_screen;

//エンターキーを押したフレームカウント
int enter;

void letter_box(){
	// ディスプレイ解像度取得
	disp_x = GetSystemMetrics(SM_CXSCREEN);
	disp_y = GetSystemMetrics(SM_CYSCREEN);
	if( disp_x / (float)SCREEN_W >= disp_y / (float)SCREEN_H ){// 描画画面の比率より横に長いか同じ場合
		letterboxsize_y		= ( disp_y % SCREEN_H ) / 2;
		letterboxsize_x		= ( disp_x - ( disp_y / SCREEN_H ) * SCREEN_W ) / 2;
		letterboxsize_n_y	= 0;
		letterboxsize_n_x	= ( disp_x - ( disp_y * SCREEN_W / SCREEN_H ) ) / 2;
	}
	else{// 描画画面の比率より縦に長い場合
		letterboxsize_x		= ( disp_x % SCREEN_W ) / 2;
		letterboxsize_y		= ( disp_y - ( disp_x / SCREEN_W ) * SCREEN_H ) / 2;
		letterboxsize_n_x	= 0;
		letterboxsize_n_y	= ( disp_y - ( disp_x * SCREEN_H / SCREEN_W ) ) / 2;
	}
}
void screen_hyouji(){
	switch(hyouji_type){
	case 0:{//オリジナル
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawRotaGraph( disp_x / 2, disp_y / 2, 1.0f, 0.0f, main_screen , FALSE , FALSE ) ;
		SetDrawScreen( main_screen );
		break;
			}
	case 1:{//整数倍
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawExtendGraph(letterboxsize_x,letterboxsize_y,disp_x - letterboxsize_x,disp_y - letterboxsize_y,main_screen, FALSE );
		SetDrawScreen( main_screen );
		break;
			}
	case 2:{//アスペクト比保持
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawExtendGraph(letterboxsize_n_x,letterboxsize_n_y,disp_x - letterboxsize_n_x,disp_y - letterboxsize_n_y,main_screen, FALSE );
		SetDrawScreen( main_screen );
		break;
			}
	case 3:{//フル
		SetDrawScreen( DX_SCREEN_BACK );
		ClearDrawScreen();
		DrawExtendGraph(0,0,disp_x,disp_y,main_screen, FALSE );
		SetDrawScreen( main_screen );
		break;
			}
	}
}

int Enter_Check(){
	if(CheckHitKey( KEY_INPUT_RETURN ))
		enter++;
	else
		enter = 0;
	return enter;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
	hyouji_type = 0;

	//黒枠計算を関数化してみた
	letter_box();
	SetGraphMode( disp_x , disp_y , 16 );

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

	main_screen = MakeScreen( SCREEN_W, SCREEN_H );// 描画用のスクリーン作成
	SetDrawScreen( main_screen );// 描画するスクリーンを変更

	while(ProcessLoop()==0){//メインループ

		if( Enter_Check() == 1 ){// エンターキーを押した時のみ
			hyouji_type++;
			if( hyouji_type > 3 )
				hyouji_type = 0;
		}

		music_ini();
		switch(func_state){
			case 0://初回のみ入る処理
				load();		//データロード
				first_ini();//初回の初期化
				func_state=99;
				break;
			case 99://STGを始める前に行う初期化
				ini();
				load_story();
				func_state=100;
				break;
			case 100://通常処理
								 enter_func_tm("最初");
				calc_ch();       enter_func_tm("キャラ計算");
				ch_move();       enter_func_tm("キャラ移動");
				cshot_main();    enter_func_tm("自機ショットメイン");
				enemy_main();	 enter_func_tm("敵処理メイン");
				boss_shot_main();enter_func_tm("ボスショットメイン");
				shot_main();	 enter_func_tm("ショットメイン");
				out_main();  	 enter_func_tm("当たり判定");
				effect_main();   enter_func_tm("エフェクトメイン");
				calc_main();	 enter_func_tm("計算メイン");
				graph_main();    enter_func_tm("描画メイン");
				bgm_main();		 enter_func_tm("BGMメイン");
				if(boss.flag==0)
					stage_count++;
				break;
			default:
				printfDx("不明なfunc_state\n");
				break;
		}
		music_play();			 enter_func_tm("音楽再生");
		fps_wait();				 enter_func_tm("待機した時間",1);
		if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
		screen_hyouji();
		ScreenFlip();//裏画面反映
		count++;

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

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

Re: アスペクト比を保ったままフルスクリーンにしたい

#9

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

こちらではこのmain.cppで問題なく動作しましたので、60章の問題ではないと思います。
ikaさんのコードには、Dixqさんのコードと違いがあるのではないでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ika

Re: アスペクト比を保ったままフルスクリーンにしたい

#10

投稿記事 by ika » 8年前

プロジェクトを再ダウンロードして先ほどのmain.cppを使用してみたのですがやはりウィンドウが表示されませんでした
こちらのPCの問題なのでしょうか
得にエラー等は出ず、ログにはこのように表示されていました

コード:

'RyuJin.exe': 'C:\Users\turuyasou\Documents\疑似デスクトップ\労作展\project\60章\Debug\RyuJin.exe' を読み込みました。シンボルが読み込まれました。
'RyuJin.exe': 'C:\Windows\SysWOW64\ntdll.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\kernel32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\KernelBase.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\imm32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\user32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.10240.16384_none_49c02355cf03478c\comctl32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\winmm.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\wsock32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\advapi32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\gdi32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\msvcrt.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\ws2_32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\sechost.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\msctf.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\nsi.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\rpcrt4.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\winmmbase.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\sspicli.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\shell32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\cfgmgr32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\cryptbase.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\windows.storage.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\combase.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\bcryptprimitives.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\msacm32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\shlwapi.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\devobj.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\kernel.appcore.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\SHCore.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\powrprof.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\profapi.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\ole32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\uxtheme.dll' を読み込みました。Cannot find or open the PDB file
0:システムの情報を出力します
0:	DXライブラリ Ver3.04d
1:	論理プロセッサの数 : 8
2:	OS  Windows ( Build 9200  )
103:	CPU動作速度:大体3.59GHz
104:	MMX命令を使用します
105:	SSE命令が使用可能です
105:	SSE2命令が使用可能です
106:	CPUベンダ:GenuineIntel
107:	CPU名:Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
'RyuJin.exe': 'C:\Windows\SysWOW64\dwmapi.dll' を読み込みました。Cannot find or open the PDB file
109:COMの初期化... 'RyuJin.exe': 'C:\Program Files (x86)\RocketDock\RocketDock.dll' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。
'RyuJin.exe': 'C:\Windows\SysWOW64\psapi.dll' を読み込みました。Cannot find or open the PDB file
成功しました
114:メモリ総量:2048.00MB  空きメモリ領域:2048.00MB 
2048.00MB
114:タイマーの精度を検査します
115:精度結果 更新回数 マルチメディアタイマー:0  パフォーマンスカウンター:60
115: パフォーマンスカウンターを使用します タイマー分解能 : 3507.519000 KHz 
116: ソフトの二重起動検査... 二重起動はされていませんでした
117:ウインドウクラスを登録します... 登録に成功しました
118:フルスクリーンモード用のウインドウを作成します
120:ウインドウの作成に成功しました
124:カーソルを不可視にしました
126:IMEを無効にしました
129:DirectInput関係初期化処理
130:	DirectInput7 の取得中... 'RyuJin.exe': 'C:\Windows\SysWOW64\clbcatq.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\dinput.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\hid.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\setupapi.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\wintrust.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\msasn1.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\crypt32.dll' を読み込みました。Cannot find or open the PDB file
成功
144:		引き続き初期化処理... 初期化成功
145:	ジョイパッドの初期化... 
148:	入力装置を見つけました
149:		デバイスの登録名:JY-P62U Series ONLINE GRIP
150:		デバイスの製品登録名:JY-P62U Series ONLINE GRIP
150:	周期的エフェクトの作成に失敗しました。
151:	ジョイパッドの追加は正常に終了しました
152:	ジョイパッドの初期化は正常に終了しました
153:	マウスデバイスの初期化... 初期化成功
154:	キーボードデバイスの初期化... 初期化成功
155:DirectInput 関連の初期化は正常に終了しました
156:DirectSound の初期化を行います
156:DirectSound インターフェースの取得を行います....  'RyuJin.exe': 'C:\Windows\SysWOW64\dsound.dll' を読み込みました。Cannot find or open the PDB file
成功
159:引き続きインターフェースの初期化処理...  'RyuJin.exe': 'C:\Windows\SysWOW64\MMDevAPI.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\propsys.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\oleaut32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\AudioSes.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\WinTypes.dll' を読み込みました。Cannot find or open the PDB file
成功
'RyuJin.exe': 'C:\Windows\SysWOW64\avrt.dll' を読み込みました。Cannot find or open the PDB file
184:	DirectSound デバイスを列挙します
185:		モジュール名:                 ドライバ記述:プライマリ サウンド ドライバー 
186:		モジュール名:{0.0.0.00000000}.{0491cc3d-4f5a-4939-a625-839d01a893f2}  ドライバ記述:スピーカー (Realtek High Definition Audio) 
186:	最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 
187:	総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 

187:	利用可能サンプリング精度
188:	 プライマリ 16bit = OK  8bit = OK 
189:	 セカンダリ 16bit = OK  8bit = OK 

189:	利用可能チャンネル
190:	 プライマリ MONO = OK  STEREO = OK 
190:	 セカンダリ MONO = OK  STEREO = OK 

191:DirectSound の初期化は正常に終了しました
'RyuJin.exe': 'C:\Windows\SysWOW64\d3d9.dll' を読み込みました。Cannot find or open the PDB file
193:DirectDraw オブジェクトの取得を行います....  'RyuJin.exe': 'C:\Windows\SysWOW64\ddraw.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\dciman32.dll' を読み込みました。Cannot find or open the PDB file
成功
199:引き続き初期化処理... 'RyuJin.exe': 'C:\Windows\SysWOW64\igdumdim32.dll' を読み込みました。Cannot find or open the PDB file
'RyuJin.exe': 'C:\Windows\SysWOW64\igdusc32.dll' を読み込みました。Cannot find or open the PDB file
初期化に成功しました
210:IDirect3D9Ex オブジェクトを取得します.... 成功
211:Desktop Window Manager を無効にしました
212:IDirect3DDevice9Ex オブジェクトを取得します.... Direct3DDevice9Ex の作成に失敗しました
214:画面モードの変更処理を開始します 1600 x 900  16 bit 
214:	画面解像度を変更します... 画面モードの変更に失敗しました
217:フォントの初期化を行います
218:フォントの初期化は正常に終了しました
スレッド 'Win32 スレッド' (0x1f50) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x3bc) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2b5c) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x1cb0) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2bb0) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x1ecc) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x28e8) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x1ab0) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x103c) はコード -1 (0xffffffff) で終了しました。
スレッド 'Win32 スレッド' (0x2970) はコード -1 (0xffffffff) で終了しました。
プログラム '[10500] RyuJin.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。


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

Re: アスペクト比を保ったままフルスクリーンにしたい

#11

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

> 画面解像度を変更します... 画面モードの変更に失敗しました
と出てますので、16bitカラーモードの
SetGraphMode( disp_x , disp_y , 16 );
では動作しないビデオカードのようです。
SetGraphMode( disp_x , disp_y , 32 );
32bitカラーモードを試してみてください。
なお、DXLIBには対応する色数を調べる関数も有った気がしますがど忘れしてしまいました。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ika

Re: アスペクト比を保ったままフルスクリーンにしたい

#12

投稿記事 by ika » 8年前

できました!!!
本当にありがとうございました!!!!!!!!

閉鎖

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