ページ 11

Dxライブラリを使用した実行ができなくなりました

Posted: 2012年5月07日(月) 23:30
by 華風えくれあ
しばらくクラスの生成に専念しておりまして、実行をしてなかったのですが、
あるとき大丈夫かどうかコンパイルを通してテスト実行させてみました。

そしたらウィンドウが表示されないのです。デバッグ有り無し両方試してみましたができませんでした。
ビルド自体はできるようです。コンソールはできるのでおそらくWin32アプリケーションのほうだと思います。

唯一わかるのはデバッグ時にログに、

コード:

'Fairies.exe': 'C:\Users\****\Documents\Visual Studio 2010\Projects\Brendel\Debug\Fairies.exe' を読み込みました。シンボルが読み込まれました。
'Fairies.exe': 'C:\Windows\SysWOW64\ntdll.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\kernel32.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\KernelBase.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\user32.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\gdi32.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\lpk.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\usp10.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\msvcrt.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\advapi32.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\sechost.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\rpcrt4.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\sspicli.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\cryptbase.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\shell32.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\shlwapi.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\imm32.dll' を読み込みました。Cannot find or open the PDB file
'Fairies.exe': 'C:\Windows\SysWOW64\msctf.dll' を読み込みました。Cannot find or open the PDB file
プログラム '[4876] Fairies.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。
ちょっとよくわからないのですが、VSの再インストールあたりで治ると思うのですが・・・。

Re: Dxライブラリを使用した実行ができなくなりました

Posted: 2012年5月07日(月) 23:34
by 紫電
一応ソースを見せてもらえます?

Re: Dxライブラリを使用した実行ができなくなりました

Posted: 2012年5月07日(月) 23:42
by softya(ソフト屋)
なんでも再インストールで直ると思っているなら危険な思想です。
デバッグに慣れるためにもバグをちゃんと取るべきだと思います。

>プログラム '[4876] Fairies.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。

となっていますが、正常に終了していないので原因は分かりますか?
あとデバッガでトレースしてみましたか?

Re: Dxライブラリを使用した実行ができなくなりました

Posted: 2012年5月08日(火) 06:28
by beatle
PDBファイルはデバッグ用のファイルです。標準DLLに対するPDBファイルはなくても問題ありません。
ということで、問題はsoftyaさんも仰られている通り、華風えくれあさんのプログラムが異常終了していることです。

Re: Dxライブラリを使用した実行ができなくなりました

Posted: 2012年5月08日(火) 06:49
by 華風えくれあ
遅くなりました、ソースはこれです。
他のファイルはまだリンクしていないので現在はこの2つだけなのですが・・。

Main.cpp

コード:

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

int ProcessLoop( void );


int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int CmdShow)
{
	if( ChangeWindowMode	( TRUE )			!=0 ||
		SetDrawScreen		( DX_SCREEN_BACK )	!=0 ||
		SetGraphMode		( 800, 600, 32 )	!=0 ||
		SetMainWindowText	( "Fairies" )		!=0		)
	{ return -1; }

	struct _
	{
		_() { if( DxLib_Init() == -1 ){ exit(-1); }}
		~_(){ DxLib_End(); }
	}DxLibraryInitalzieStruct;		// 名前は何でもよかった


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

		if( CheckHitKey( KEY_INPUT_ESCAPE ) != 0 ){ break; }
		ScreenFlip();
	}

	WaitKey();

	return 0;
}

int ProcessLoop( void )
{
	if( ProcessMessage	()!=0 ||
		ClearDrawScreen	()!=0		)
	{ return -1; }

		// TODO

	return 0;
}
General.h

コード:


#ifndef __INCLUDE_GENERAL_H__
#define __INCLUDE_GENERAL_H__

#ifdef	GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL extern
#endif

#include "DxLib.h"



#endif

Re: Dxライブラリを使用した実行ができなくなりました

Posted: 2012年5月08日(火) 06:51
by 華風えくれあ
あぁ、すいません。
起動初期のif(ChangeWindow~return -1;( 9~13行目 )の部分をコメントアウトしたらできるようになりました。
むやみに!=0にするのはよくないですね・・・。

調べなおしてきます。

Re: Dxライブラリを使用した実行ができなくなりました

Posted: 2012年5月08日(火) 10:14
by softya(ソフト屋)
戻り値をチェックするのは良いことですが、かならずリファレンスで正しい戻り値を確認して下さい。
「DXライブラリ置き場 リファレンスページ」
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html