トップページ > 過去ログ > 記事閲覧
DXライブラリの使い方でつまずきました
名前:超がつくほどの初心者 日時: 2009/06/16 22:38

このページのDXライブラリの使い方どうりにダウンロード、インストールをしました。 そこは特に問題はありませんでしたが最後のプログラムを組むところで不具合が発生しました。 でも、エラーは発生しているとは書いてません。 その後の実行のとき、画面全体が暗くはなるのですが、画面中心に点は打たれず、本来ならキーを入力しないと戻れない命令なのに勝手に戻ります。 どうすればいいのですか? 本当にこの前始めたばかりの初心者ですけど教えてください。 下にデバック後の出力を書いておきます。 'test3.exe': 'C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\test3\Debug\test3.exe' を読み込みました。シンボルが読み込まれました。 'test3.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\comctl32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\advapi32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\rpcrt4.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\secur32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\winmm.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\wsock32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\ws2_32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\msvcrt.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\ws2help.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\imm32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\msacm32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\shell32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\shlwapi.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\ole32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\lpk.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\usp10.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll' を読み込みました システムの情報を出力します DXライブラリ Ver2.25b OS WindowsXP ( Build 2600 Service Pack 2 ) CPU動作速度:大体1.25GHz MMX命令を使用します SSE命令が使用可能です SSE2命令が使用可能です CPUベンダ:GenuineIntel CPU名:Intel(R) Celeron(R) M processor 1.60GHz COMの初期化... 'test3.exe': 'C:\WINDOWS\system32\uxtheme.dll' を読み込みました 'test3.exe': 'C:\Program Files\Yahoo_BB\SmartBridge\SBHook.dll' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。 'test3.exe': 'C:\Program Files\JWord\Plugin2\jwdsrch.dll' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。 'test3.exe': 'C:\WINDOWS\system32\oleaut32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\wininet.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\crypt32.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\msasn1.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\version.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\MSCTF.dll' を読み込みました 成功しました メモリ総量:447.48MB 空きメモリ領域:45.62MB 45.62MB タイマーの精度を検査します 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 パフォーマンスカウンターを使用します タイマー分解能 : 3579.545000 KHz ソフトの二重起動検査... 二重起動はされていませんでした ウインドウクラスを登録します... 登録に成功しました フルスクリーンモード用のウインドウを作成します 'test3.exe': 'C:\WINDOWS\system32\MSCTFIME.IME' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\IMJP9.IME' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\IMJP9K.DLL' を読み込みました ウインドウの作成に成功しました カーソルを不可視にしました IMEを無効にしました DirectInput関係初期化処理 DirectInput7 の取得中... 'test3.exe': 'C:\WINDOWS\system32\clbcatq.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\comres.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\dinput.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\hid.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\setupapi.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\wintrust.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\imagehlp.dll' を読み込みました 成功 引き続き初期化処理... 初期化成功 'test3.exe': 'C:\Program Files\Yahoo_BB\SmartBridge\psapi.dll' を読み込みました 'test3.exe': 'C:\Program Files\Yahoo_BB\SmartBridge\psapi.dll' をアンロード ジョイパッドの初期化... ジョイパッドの初期化は正常に終了しました マウスデバイスの初期化... 初期化成功 キーボードデバイスの初期化... 初期化成功 DirectInput 関連の初期化は正常に終了しました DirectSound の初期化を行います DirectSound インターフェースの取得を行います.... 'test3.exe': 'C:\WINDOWS\system32\dsound.dll' を読み込みました 成功 引き続きインターフェースの初期化処理... 'test3.exe': 'C:\WINDOWS\system32\wdmaud.drv' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\wdmaud.drv' をアンロード 'test3.exe': 'C:\WINDOWS\system32\wdmaud.drv' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\msacm32.drv' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\midimap.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\ksuser.dll' を読み込みました 成功 DirectSound デバイスを列挙します モジュール名: ドライバ記述:プライマリ サウンド ドライバ モジュール名: ALCXWDM.SYS ドライバ記述:Realtek AC97 Audio 最大サンプリングレート:192.00KHz 最小サンプリングレート:8.00KHz 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 利用可能サンプリング精度 プライマリ 16bit = OK 8bit = OK セカンダリ 16bit = OK 8bit = OK 利用可能チャンネル プライマリ MONO = OK STEREO = OK セカンダリ MONO = OK STEREO = OK DirectSound の初期化は正常に終了しました DirectDraw 関連の初期化を行います DirectDraw オブジェクトの取得を行います.... 'test3.exe': 'C:\WINDOWS\system32\ddraw.dll' を読み込みました 'test3.exe': 'C:\WINDOWS\system32\dciman32.dll' を読み込みました 成功 引き続き初期化処理... 初期化に成功しました ビデオカードの情報 画面モード変更処理を開始します ウインドウスタイルをフルスクリーンモード用に変更します... 完了 画面モードの変更処理を開始します 640 x 480 16 bit 画面解像度を変更します... 画面モードの変更に失敗しました ウインドウスタイルをフルスクリーンモード用に変更します... 完了 画面モードの変更処理を開始します 640 x 480 16 bit 画面解像度を変更します... 画面モードの変更に失敗しました 予期せぬ画面モード変更不能現象が起きました スレッド 'Win32 スレッド' (0x1054) はコード -1 (0xffffffff) で終了しました。 スレッド 'Win32 スレッド' (0x11c8) はコード -1 (0xffffffff) で終了しました。 スレッド 'Win32 スレッド' (0x888) はコード -1 (0xffffffff) で終了しました。 スレッド 'Win32 スレッド' (0x150c) はコード -1 (0xffffffff) で終了しました。 プログラム '[4500] test3.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。

Page: 1 |

Re: DXライブラリの使い方でつまずきました ( No.1 )
名前:キーチック 日時:2009/06/17 03:35

コンパイルでエラーが出ていないようですので,文法的には問題ないのでしょう. だとすると,ハードウェアのスペックの問題と言うことではないかという直感があります. 画面モード変更不能というエラーのようですので,お使いのコンピュータが 640 × 480 16 bitに対応しているかどうかが一つの鍵では無いでしょうか. (最近の横長ディスプレイのノートPCでは画面の大きさを640 × 480 16 bitに 設定できないものがあるようですので…)
Re: DXライブラリの使い方でつまずきました ( No.2 )
名前:Will 日時:2009/06/17 12:50

確認の仕方補足(知ってたら無視してください) 画面のプロパティ ↓ 設定タブ ↓ 画面の解像度というところにスライドバーがあるのでそれを左端に持ってくる この時、スライドバーの下に「640 x 480 ピクセル」と表示されないようであれば 非対応なのでしょう。
Re: DXライブラリの使い方でつまずきました ( No.3 )
名前:管理人 日時:2009/06/18 20:47

DXライブラリは初期状態では 横640ドット 縦480ドットのフルスクリーンモードで起動しようとします ですが、キーチックさんや Willさんも仰られているように、640x480の画面モードに対応していない モニターではフルスクリーンモードにすることができず、起動に失敗してプログラムが終了してしまいます なので、とりあえず DxLib_Init の前に ChangeWindowMode というウインドウモードにするかどうかを設定する 関数を使用してウインドウモードで起動して、更に SetGraphMode という画面のサイズや使用する色ビット深度を 設定する関数を使用して画面のサイズを小さくすれば起動することができると思います #include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // ウインドウモードでプログラムを起動 ChangeWindowMode( TRUE ) ; // 画面のサイズを 400x300 に SetGraphMode( 400, 300, 32 ) ; // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1 ; // 点を打つ DrawPixel( 200 , 150 , GetColor( 255,255,255 ) ) ; // キー入力待ち WaitKey() ; // DXライブラリ使用の終了処理 DxLib_End() ; // ソフトの終了 return 0 ; }

Page: 1 |