トップページ > 過去ログ > 記事閲覧
描画関連がうまくいきません
名前:なゐ 日時: 2008/07/29 01:29

お初にお目にかかります。 さっそくですが、私の不具合についてご説明させてください。 開発環境はVC++です。 解説どおりに設定をしていったところ、エラーもなく画面が出力され、キーの操作受付待ちもできているのですが、 どのサンプルを持ってきても図形描画関連ができていません。真っ黒い画面のままです。 調べたところ、できないことは  ・図形描画  ・画像表示  ・文字描画 で、音声の再生はできていました。何が悪いのか、検討がつきません。 解説どおりに必要なものを集め、インストールや設定を行ってきたからこそ、正常にビルドできるのだと思います。 だから、何かが足りていない、そんな感じだと考えています。例えば、DirectXとか?一応最新版を入れていますが、描画はうまくいっていません。 どなたか、この状況の打破に力をお貸しください。よろしくお願いします 冗長的になって申し訳ありませんが、ここにその際の出力結果を貼り付けてみました。 'DxLib_VC2005用.exe': 'C:\Documents and Settings\USER\デスクトップ\DxLib_VC\サンプルプログラム実行用フォルダ\Debug\DxLib_VC2005用.exe' を読み込みました。シンボルが読み込まれました。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\comctl32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\advapi32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\rpcrt4.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\ole32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\msvcrt.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\shell32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\shlwapi.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\winmm.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\wsock32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\ws2_32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\ws2help.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\imm32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\msacm32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\lpk.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\usp10.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\Temp\aia8.tmp' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\mpr.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\oleaut32.dll' を読み込みました。シンボルが読み込まれていません。 システムの情報を出力します DXライブラリ Ver2.24c OS WindowsXP ( Build 2600 Service Pack 2 ) CPU動作速度:大体1.57GHz MMX命令を使用します CPUベンダ:GenuineIntel CPU名: Intel(R) Pentium(R) M processor 1.60GHz COMの初期化... 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\SynTPFcs.dll' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\version.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\MSCTF.dll' を読み込みました。シンボルが読み込まれていません。 成功しました メモリ総量:510.80MB 空きメモリ領域:181.69MB 181.69MB タイマーの精度を検査します 精度結果 更新回数 マルチメディアタイマー:1 パフォーマンスカウンター:60 パフォーマンスカウンターを使用します タイマー分解能 : 3579.545000 KHz ソフトの二重起動検査... 二重起動はされていませんでした ウインドウクラスを登録します... 登録に成功しました フルスクリーンモード用のウインドウを作成します 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\MSCTFIME.IME' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\imjp81.ime' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\imjp81k.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\uxtheme.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\ime\IMJP8_1\DICTS\imjpcd.dic' を読み込みました。シンボルが読み込まれていません。 カーソルを不可視にしました IMEを無効にしました DirectInput関係初期化処理 DirectInput7 の取得中... 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\clbcatq.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\comres.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\dinput.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\hid.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\setupapi.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\wintrust.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\crypt32.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\msasn1.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\imagehlp.dll' を読み込みました。シンボルが読み込まれていません。 成功 引き続き初期化処理... 初期化成功 ジョイパッドの初期化... ジョイパッドの初期化は正常に終了しました マウスデバイスの初期化... 初期化成功 キーボードデバイスの初期化... 初期化成功 DirectInput 関連の初期化は正常に終了しました DirectSound の初期化を行います DirectSound インターフェースの取得を行います.... 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\dsound.dll' を読み込みました。シンボルが読み込まれていません。 成功 引き続きインターフェースの初期化処理... 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\wdmaud.drv' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\wdmaud.drv' をアンロード 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\wdmaud.drv' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\msacm32.drv' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\midimap.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\ksuser.dll' を読み込みました。シンボルが読み込まれていません。 成功 DirectSound デバイスを列挙します モジュール名: ドライバ記述:プライマリ サウンド ドライバ モジュール名: cmuda.sys ドライバ記述:C-Media Wave Device 最大サンプリングレート:100.00KHz 最小サンプリングレート:0.10KHz 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 利用可能サンプリング精度 プライマリ 16bit = OK 8bit = OK セカンダリ 16bit = OK 8bit = OK 利用可能チャンネル プライマリ MONO = OK STEREO = OK セカンダリ MONO = OK STEREO = OK DirectSound の初期化は正常に終了しました DirectDraw 関連の初期化を行います DirectDraw オブジェクトの取得を行います.... 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\ddraw.dll' を読み込みました。シンボルが読み込まれていません。 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\dciman32.dll' を読み込みました。シンボルが読み込まれていません。 成功 引き続き初期化処理... 初期化に成功しました ビデオカードの情報 画面モード変更処理を開始します ウインドウスタイルをフルスクリーンモード用に変更します... 完了 画面モードの変更処理を開始します 640 x 480 16 bit 画面解像度を変更します... 成功しました 画面モードの変更は正常に終了しました カラー情報 A:00000000 B:0000f800 G:000007e0 B:0000001f 出力画面用の DirectDrawSurface を作成します 各スクリーンメモリの配置位置 PrimaryBuffer : VIDEOMEMORY BaskBuffer : VIDEOMEMORY 出力画面用の DirectDrawSurface の作成は正常に終了しました Direct3D 関連の初期化を行います Direct3Dオブジェクトを取得します 'DxLib_VC2005用.exe': 'C:\WINDOWS\system32\d3dim700.dll' を読み込みました。シンボルが読み込まれていません。 Direct3Dオブジェクトを取得しました 3Dデバイスを作成します... 3Dデバイスの作成に成功しました テクスチャ最大幅:2048 最小幅:1 描画制限: D_D3DPTEXTURECAPS_POW2 = 1 D_D3DPTEXTURECAPS_SQUAREONLY = 0 テクスチャピクセルフォーマット 通常グラフィック用 BIT:16 RED:5 GREEN:6 BLUE:5 RED:00f800 GREEN:0007e0 BLUE:00001f BIT:32 RED:8 GREEN:8 BLUE:8 RED:ff0000 GREEN:00ff00 BLUE:0000ff アルファチャンネル付きグラフィック用 BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4 ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8 ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff Direct3D 関連の初期化は正常に終了しました グラフィック管理系の初期化を行います 3Dグラフィック描画機能を使用します フォントの初期化を行います フォントの初期化は正常に終了しました グラフィック管理系の初期化は正常に終了しました サーフェス間転送には BltFast を使用します BitBlt:512192μs BltFast:232116μs スキャンラインの数:480 1フレーム当たりの時間は 16 msecです Tri00:16 msec Tri01:16 msec Tri02:17 msec Tri03:17 msec 画面モード変更処理は正常に終了しました オーバーレイサーフェスを使用します    UYVY DirectDraw 関連の初期化は正常に終了しました 文字コードバッファの初期化を行います... 完了しました DirectDraw 関連の終了処理をおこないます フォントの初期化を行います フォントの初期化は正常に終了しました グラフィック管理系の終了処理は正常に終了しました Direct3D 関連の終了処理を行います 3Dデバイスの削除は正常に終了しました Direct3D 関連の終了処理は正常に終了しました メインサーフェスを破棄をします... 完了しました DirectDrawオブジェクトを解放します DirectDrawオブジェクトを解放しました DirectDraw 関連の終了処理は正常に終了しました DirectInput 関連の終了処理... 完了 スレッド 'Win32 スレッド' (0xc50) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xee0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xd40) はコード 0 (0x0) で終了しました。 DirectSound の終了処理は正常に終了しました ウインドウを閉じようとしています ウインドウが破棄されようとしています ソフトを終了する準備が整いました スレッド 'Win32 スレッド' (0xdbc) はコード 0 (0x0) で終了しました。 Alloc memory dump Total size:0(0.000kb) Alloc num:0 スレッド 'Win32 スレッド' (0xe88) はコード 0 (0x0) で終了しました。 プログラム '[524] DxLib_VC2005用.exe: ネイティブ' はコード 0 (0x0) で終了しました。

Page: 1 |

Re: 描画関連がうまくいきません ( No.1 )
名前: 日時:2008/07/30 10:12

どんなコードを書いてそうなったのかが重要です。 できれば、該当の図形を描画する部分のソースを 貼り付けてみては? コンパイルエラーではないので、 結果だけ貼り付けても分かることは 少ないと思います。
Re: 描画関連がうまくいきません ( No.2 )
名前:なゐ 日時:2008/07/30 12:39

失礼しました。コードのせいではないと考え、コードは載せませんでしたが、 不具合を見てもらう以上、判断材料は全て提示しなければなりませんね。今後は気をつけます。 私の場合、図形描画関係全てがうまくいっていませんが、 例として、以下のコードを使用したとき、描画ができていませんでした #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int Cr ; if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } Cr = GetColor( 0 , 0 , 255 ) ; // 青色の値を取得 DrawBox( 0 , 0 , 640 , 480 , Cr , TRUE) ; // 四角形を描画 WaitKey() ; // キーの入力待ち(『WaitKey』を使用) DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } 以上は四角形の描画ですが、この他、関数解説のページに倣い、点を打つ関数、線を引く関数を試してみましたが、全て画面が真っ黒なままでした。 いずれも、サンプルをそのままコピー&ペーストしています。 文字列の描画に関しても同様で、以下のコードをサンプルからコピー&ペーストして実行しても、画面は真っ黒なままでした #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int Cr ; if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } // 白色の値を取得 Cr = GetColor( 255 , 255 , 255 ) ; // 文字列の描画 DrawString( 250 , 240 - 32 , "Hello C World!" , Cr ); WaitKey() ; // キーの入力待ち(『WaitKey』を使用) DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } また、画像表示に関しても同様で、DXライブラリ付属のサンプルコードをそのまま実行しても画像は描画されませんでした。 ビットマップ画像の場所がおかしいのでは?と考え、色々と試してみましたが、 そもそもファイルの場所の問題では無いということは、点が打てないことから明白でした。 ちなみに、音声は再生できていました。以下のコードで、指定の音源を再生することができました。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } // test.wavのノーマル再生 PlaySoundFile( "test.wav" , DX_PLAYTYPE_NORMAL ) ; DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } やはり環境がおかしいのでしょうか?それとも設定がおかしいのでしょうか?このようなケースを他にもご存知でしたら、アドバイスをいただきたいです。よろしくお願いします
Re: 描画関連がうまくいきません ( No.3 )
名前:Will 日時:2008/07/30 13:15

画面のプロパティの「設定」タブに「画面の色」という項目があるのですが、そこの設定はどうなっていますか? 24bitに設定されている場合に、正しく表示されないことがあるらしいです。
Re: 描画関連がうまくいきません ( No.4 )
名前:なゐ 日時:2008/07/30 13:35

ご指摘ありがとうございます。 確認してみましたが、今は32bitになっていました。どうやらその線も無いみたいです。 ですが、なるほど、画面などのハードウェア的な不具合もあるのですね! ライブラリやDirectXの描画関連の不具合しか考えていませんでした。 今後はこのようなことを踏まえて不具合に当たっていこうと思います。ありがとうございます
Re: 描画関連がうまくいきません ( No.5 )
名前: 日時:2008/07/30 14:03

なるほど、コード自体はサンプルから 編集したものではなく、サンプルそのものなのですね ちなみにこれはウィンドウモードでも 発生しますか? Initの前にChangeWindowMode( TRUE )を呼び出して みて、発生するかどうか調べたほうがいいかもしれません。 スクリーンモードで起こるとHW依存の可能性が かなり高そうですが。。。
Re: 描画関連がうまくいきません ( No.6 )
名前:なゐ 日時:2008/07/30 14:57

ご指摘ありがとうございます。 ちょっと外出中で、パソコンの環境が違う場所から書き込んでいます。 お返事が7時以降くらいになってしまいますので、もしレス待ちでしたら、申し訳ありません。 帰宅したら通さんに言われたウィンドウモードを試してみようと思います。 確かに、解像度などの問題から、描画できているのに、表示範囲外という可能性も考えられますね。 ちなみに、今書き込みに使用しているパソコンでも同じことを試してみましたが、 こちらではすんなりとうまくいきました。 うまくいったとしても、このパソコンはそんなに自由には使えないので、やはり不具合は解決したいです
Re: 描画関連がうまくいきません ( No.7 )
名前:Will 日時:2008/07/30 16:02

グラフィックスドライバを最新のものに更新をしてみると解決するかもしれません。
Re: 描画関連がうまくいきません ( No.8 )
名前:なゐ 日時:2008/07/30 16:16

ご指摘ありがとうございます。 まだ外出中なのですが、帰宅後すぐに調べてみようと思います。 帰宅は7時を過ぎると思いますので、レス待ちでしたら申し訳ありません。試したらすぐに報告しますね
Re: 描画関連がうまくいきません ( No.9 )
名前:なゐ 日時:2008/07/30 20:19

お返事遅くなってすみません。 皆様、ご指摘ありがとうございました。無事に解決いたしました! まず、通さんの言われたウィンドウモードを試してみましたが、どうもこれでもなかったようです。 Willさんのご指摘から、グラフィックドライバを最新のものに更新しようと様々な検索をかけたところ、 その前にハードウェアアクセラレータというものが目に留まりました。そこでは、トラブルシューティングとして、以下のような文章がありました。 「画面設定が1024*768ピクセル、256色のCRT表示の時、 ActiveMovieで動画ファイルを再生し、フルスクリーン表示にすると表示不正となる。」 この対策として、ハードウェアアクセラレータを最大状態から基本値まで戻すと正常に動作するということでした。 要するにアクセラレータを切ることで、問題が解決されたようです。 これまでのサンプルプログラムを実行した結果、画像の表示、図形描画、文字描画などが正常に行えるようになりました。 皆様のご指摘、アドバイスに、重ね重ね感謝します。ありがとうございました。

Page: 1 |