トップページ > 過去ログ > 記事閲覧
黒い画面が出て停止する
名前:星樟八郎 日時: 2006/11/09 20:40

初めまして。こちらも、「14歳からはじめるC言語〜」を買ってやっていますが、 これまでの人と似たように、第3章の最初のプログラムで止まっています。 載っている通りにやってみると・・・。 黒いウィンドウ画面が出て止まり、電源を入れ直さないと動かなくなります。 次に、過去の書き込みを見て、SetScreenMemToVramFlag(FALSE);を入れ、次のようにしました。 #include"DxLib.h" int WINAPI WinMain(HINSTANCE hI,HINSTANCE hP,LPSTR lpC,int nC) { ChangeWindowMode(TRUE); SetScreenMemToVramFlag(FALSE); if(DxLib_Init()==-1) return -1; DrawBox(0,0,120,120,65535,TRUE); WaitKey(); DxLib_End(); return 0; } その前に、DrawBox(...);の部分を/*...*/で囲んでやってみると、 黒いウィンドウ画面が出たあと、何かキーを押すと消えて、うまく行きました。 そして上のプログラムでやってみると・・・。 黒いウィンドウ画面に白い四角が左上に出ますが、そのまま止まります。 そのあと、ctrl+Alt+Deleteのキーを押すと、全体が青い画面になります。 その中の文章の一部を書いてみます。 「例外06が0000:00000017で発生しました。」 そしてまたctrl+Alt+Deleteを押すと戻ります(そのあとはややこしいので省略)。 とりあえず各種データ。 本体:富士通FMV ME3/505 OS:WINDOWS98 ディスプレイ:Fujitsu FMVDP84X5G/848−SiS 530 色:HighColor(16ビット) 画面の領域:800×600ピクセル (画面のプロパティ:設定より) 上のプログラムのログファイル 1:システムの情報を出力します 3: DXライブラリ Ver2.22e 4: OS Windows98 ( Build 67766446 A ) 107: CPU動作速度:大体0.50GHz 108: MMX命令を使用します 109: CPUベンダ:AuthenticAMD 115: CPU名:AMD-K6(tm) 3D processor 116:COMの初期化... 成功しました 144:ソフトの二重起動検査... 二重起動はされていませんでした 147:メモリ総量:186.81MB 空きメモリ領域:75.33MB 148:ソフトの実行優先レベルを上げました 150:ウインドウクラスを登録します... 登録に成功しました 152:ウインドウモード起動用のウインドウを作成します 208:IMEを無効にしました 210:タイマーの精度を検査します 231:精度結果 更新回数 マルチメディアタイマー:4 パフォーマンスカウンター:60 232:パフォーマンスカウンターを使用します タイマー分解能 : 1193.180000 KHz 434:ウインドウスタイルをウインドウモード用に変更します... 完了 438:DirectInput関係初期化処理 439: DirectInput7 の取得中... 成功 624: 引き続き初期化処理... 初期化成功 628: ジョイパッドの初期化... 687: ジョイパッドの初期化は正常に終了しました 688: マウスデバイスの初期化... 初期化成功 694: キーボードデバイスの初期化... 初期化成功 701:DirectInput 関連の初期化は正常に終了しました 702:DirectSound の初期化を行います 703:DirectSound インターフェースの取得を行います.... 成功 979:引き続きインターフェースの初期化処理... 成功 1477:DirectSoundのプライマリサウンドバッファのフォーマット設定に失敗しました 1481: DirectSound デバイスを列挙します 1486: モジュール名: ドライバ記述:プライマリ サウンド ドライバ 1488: モジュール名: ESSOLO.VXD ドライバ記述:ESS PCI Solo-1 DirectSound Driver 1489: モジュール名: WaveOut 1 ドライバ記述:ゲーム互換デバイス (列挙済み) 1490: モジュール名: WaveOut 2 ドライバ記述:Voice Modem Wave #00 Line (列挙済み) 1491: 最大サンプリングレート:0.00KHz 最小サンプリングレート:0.00KHz 1493: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 1494: 利用可能サンプリング精度 1495: プライマリ 16bit = OK 8bit = OK 1496: セカンダリ 16bit = NO 8bit = NO 1497: 利用可能チャンネル 1499: プライマリ MONO = OK STEREO = OK 1500: セカンダリ MONO = NO STEREO = NO 1501:DirectSound の初期化は正常に終了しました 1504:DirectDraw 関連の初期化を行います 1505: DirectDraw オブジェクトの取得を行います.... 成功 1543: 引き続き初期化処理... 初期化に成功しました 1821: ビデオカードの情報 1823: 画面モード変更処理を開始します 1885: 画面モードの変更処理を開始します 640 x 480 16 bit 1886: ウインドウモードにします 1888: 画面モードの変更は正常に終了しました 1889: カラー情報 1890: A:00000000 B:0000f800 G:000007e0 B:0000001f 1892: ウインドウスタイルをウインドウモード用に変更します... 完了 1895: 出力画面用の DirectDrawSurface を作成します 1924: 各スクリーンメモリの配置位置 1926: PrimaryBuffer : VIDEOMEMORY 1927: BaskBuffer : VIDEOMEMORY 1928: 出力画面用の DirectDrawSurface の作成は正常に終了しました 1930: Direct3D 関連の初期化を行います 1939: Direct3Dオブジェクトを取得します 2056: Direct3Dオブジェクトを取得しました 2085: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました 2129: テクスチャ最大幅:512 最小幅:1 2131: 描画制限: D_D3DPTEXTURECAPS_POW2 = 1 D_D3DPTEXTURECAPS_SQUAREONLY = 0 2132: テクスチャピクセルフォーマット 2133: 通常グラフィック用 2134: BIT:16 RED:5 GREEN:6 BLUE:5 2135: RED:00f800 GREEN:0007e0 BLUE:00001f 2137: BIT:32 RED:8 GREEN:8 BLUE:8 2138: RED:ff0000 GREEN:00ff00 BLUE:0000ff 2139: アルファチャンネル付きグラフィック用 2141: BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4 2142: ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f 2143: BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8 2144: ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff 2146: Direct3D 関連の初期化は正常に終了しました 2147: グラフィック管理系の初期化を行います 2161: 3Dグラフィック描画機能を使用します 2165: フォントの初期化を行います 2238: フォントの初期化は正常に終了しました 2240: グラフィック管理系の初期化は正常に終了しました 2728: サーフェス間転送には BltFast を使用します 2729: BitBlt:227680μs BltFast:183040μs 2730: スキャンラインの数:600 2755: 1フレーム当たりの時間は 0 msecです 2756: Tri00:1 msec 2757: Tri01:16 msec 2758: Tri02:0 msec 2760: Tri03:0 msec 2761: 画面モード変更処理は正常に終了しました 2766: オーバーレイサーフェスを使用します    YUY2 2769: DirectDraw 関連の初期化は正常に終了しました 2826: 文字コードバッファの初期化を行います... 完了しました

Page: 1 |

Re: 黒い画面が出て停止する ( No.1 )
名前:管理人 日時:2006/11/12 15:30

 星樟八郎さん始めまして、DXライブラリの管理人です。  SetScreenMemToVramFlag( FALSE ) をした状態でも正常に 動作しませんでしたか・・・・  うーん、98,ME 時代のFMVとは相性が悪そうですね。orz (まあ、FMVに限らず、メーカー製パソコンでまともに DirectX7 時代の Direct3D が使えるようになったのはここ 3・4年の話ですが)  Direct3D 程ではありませんが、DirectDraw もWindows標準の 画像処理APIに比べれば安定性は低いので、今回 DirectDraw も 使用せずに表示処理を行う機能を追加してみました。 (処理速度は SetScreenMemToVramFlag( FALSE )で起動する場合と 殆ど同じか、ちょっと遅いくらいです)  宜しければこちらをダウンロードして下さい。m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のファイルに上書きして、BCCをお使いの場合は『再構築』、 VCをお使いの場合は『リビルド』をして下さい)  このバージョンでは DirectDraw を使用するかどうかを設定する SetUseDirectDrawFlag という関数が追加されています。  こちらも SetScreenMemToVramFlag 関数と同様に DxLib_Init の前で 使用することで効果が出ますので、宜しければ DxLib_Init の前に SetUseDirectDrawFlag( FALSE );  という記述を増やして、DirectDraw を使用しない設定でプログラムを 実行してみて下さい。m(_ _)m
Re: 黒い画面が出て停止する ( No.2 )
名前:星樟八郎 日時:2006/11/12 21:18

そちらのおっしゃる通りにやってみたところ・・・。 ウィンドウ画面が出るのは遅いですが、うまく行きました。 また何かありましたら来ます。 あ、もう1つ言い忘れたことが。DirectXのバージョンは9.0cでした。 どうやってバージョンアップさせたかは忘れたけど。

Page: 1 |