Re: タスク切換時の画像復帰 ( No.16 ) |
- 名前:SweetBlack 日時:2007/01/30 19:57
管理人様。
何度もお手間を取らせて申し訳ありません。
さて、修正したバージョンを試させていただきました。
結論から申しますと、うまくいきませんでした。
確かに、前述しましたテストプログラムにて
何度かタスク切り替えを試してみたところ、
一度も強制終了はしませんでした。
そこで、今製作中のソフトに組み込んで
試してみると、数回のタスク切り替えで
アプリケーションエラーが発生するのです。
先ほどまでの「強制終了」は
何もメッセージなしに突然終了する、というものでしたが、今回のは
「アプリケーションエラー
エラーが発生したため○○.exeを終了します。プログラムを
もう一度開始する必要があります。
エラーログを作成しています。」
というウィンドウが表示されて落ちるようになりました。
発生条件は今のところ絞り込めていませんが、
取り急ぎご報告させていただきます。
念の為、ログを載せておきます。
//--------------------------ここから
0:システムの情報を出力します
16: DXライブラリ Ver2.23
16: OS Windows2000 ( Build 2195 Service Pack 4 )
116: CPU動作速度:大体1.36GHz
117: MMX命令を使用します
118: CPUベンダ:AuthenticAMD
121: CPU名:AMD Athlon(tm) 64 Processor 3000+
124:COMの初期化... 成功しました
128:メモリ総量:2047.23MB 空きメモリ領域:1708.57MB
129:タイマーの精度を検査します
130:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
131: パフォーマンスカウンターを使用します タイマー分解能 : 3579.545000 KHz
133: ソフトの二重起動検査... 二重起動はされていませんでした
136:ウインドウクラスを登録します... 登録に成功しました
138:フルスクリーンモード用のウインドウを作成します
151:カーソルを不可視にしました
152:IMEを無効にしました
354:DirectInput関係初期化処理
355: DirectInput7 の取得中... 成功
367: 引き続き初期化処理... 初期化成功
369: ジョイパッドの初期化...
375: 入力装置を見つけました
378: デバイスの登録名:Rumble Pad
379: デバイスの製品登録名:Rumble Pad
380: 周期的エフェクトの作成に失敗しました。
381: ジョイパッドの追加は正常に終了しました
382: ジョイパッドの初期化は正常に終了しました
383: マウスデバイスの初期化... 初期化成功
386: キーボードデバイスの初期化... 初期化成功
388:DirectInput 関連の初期化は正常に終了しました
389:DirectSound の初期化を行います
390:DirectSound インターフェースの取得を行います.... 成功
393:引き続きインターフェースの初期化処理... 成功
466: DirectSound デバイスを列挙します
467: モジュール名: ドライバ記述:プライマリ サウンド ドライバ
469: モジュール名: ctaud2k.sys ドライバ記述:SB Live! オーディオ [A000]
470: 最大サンプリングレート:192.00KHz 最小サンプリングレート:4.00KHz
471: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
472: 利用可能サンプリング精度
473: プライマリ 16bit = OK 8bit = OK
474: セカンダリ 16bit = OK 8bit = OK
475: 利用可能チャンネル
476: プライマリ MONO = OK STEREO = OK
477: セカンダリ MONO = OK STEREO = OK
478:DirectSound の初期化は正常に終了しました
479:DirectDraw 関連の初期化を行います
481: DirectDraw オブジェクトの取得を行います.... 成功
485: 引き続き初期化処理... 初期化に成功しました
488: ビデオカードの情報
490: 画面モード変更処理を開始します
551: ウインドウスタイルをフルスクリーンモード用に変更します... 完了
554: 画面モードの変更処理を開始します 640 x 480 16 bit
556: 画面解像度を変更します... 成功しました
692: 画面モードの変更は正常に終了しました
698: カラー情報
703: A:00000000 B:0000f800 G:000007e0 B:0000001f
717: 出力画面用の DirectDrawSurface を作成します
791: 各スクリーンメモリの配置位置
798: PrimaryBuffer : VIDEOMEMORY
804: BaskBuffer : VIDEOMEMORY
809: 出力画面用の DirectDrawSurface の作成は正常に終了しました
824: Direct3D 関連の初期化を行います
869: Direct3Dオブジェクトを取得します
964: Direct3Dオブジェクトを取得しました
967: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました
973: テクスチャ最大幅:4096 最小幅:1
974: 描画制限: D_D3DPTEXTURECAPS_POW2 = 0 D_D3DPTEXTURECAPS_SQUAREONLY = 0
975: テクスチャピクセルフォーマット
976: 通常グラフィック用
977: BIT:16 RED:5 GREEN:6 BLUE:5
979: RED:00f800 GREEN:0007e0 BLUE:00001f
980: BIT:32 RED:8 GREEN:8 BLUE:8
981: RED:ff0000 GREEN:00ff00 BLUE:0000ff
983: アルファチャンネル付きグラフィック用
984: BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4
985: ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f
986: BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8
988: ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff
989: Direct3D 関連の初期化は正常に終了しました
990: グラフィック管理系の初期化を行います
992: 3Dグラフィック描画機能を使用します
994: フォントの初期化を行います
999: フォントの初期化は正常に終了しました
1001: グラフィック管理系の初期化は正常に終了しました
1060: サーフェス間転送には BltFast を使用します
1062: BitBlt:29696μs BltFast:24832μs
1063: スキャンラインの数:480
1183: 1フレーム当たりの時間は 16 msecです
1184: Tri00:16 msec
1186: Tri01:17 msec
1187: Tri02:16 msec
1189: Tri03:17 msec
1190: 画面モード変更処理は正常に終了しました
1200: オーバーレイサーフェスを使用します UYVY
1201: DirectDraw 関連の初期化は正常に終了しました
1215: 文字コードバッファの初期化を行います... 完了しました
12397: Direct3Dデバイスを削除しました
12399: Direct3Dオブジェクトを解放します
12400: Direct3Dオブジェクトを解放しました
12402: メインサーフェスを破棄をします... 完了しました
12403: DirectInput 関連の終了処理... 完了
12405: DirectDrawオブジェクトを解放します
12408: DirectDrawオブジェクトを解放しました
12410: DirectDraw オブジェクトの取得を行います.... 成功
12412: 引き続き初期化処理... 初期化に成功しました
12416: ビデオカードの情報
12417: 画面モードの変更処理を開始します 640 x 480 16 bit
12419: 画面解像度を変更します... 成功しました
12538: 画面モードの変更は正常に終了しました
12545: 出力画面用の DirectDrawSurface を作成します
12583: 各スクリーンメモリの配置位置
12637: PrimaryBuffer : VIDEOMEMORY
12647: BaskBuffer : VIDEOMEMORY
12652: 出力画面用の DirectDrawSurface の作成は正常に終了しました
12662: Direct3Dオブジェクトを取得します
12713: Direct3Dオブジェクトは正常に取得されました
12720: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました
12819: DirectInput関係初期化処理
12821: DirectInput7 の取得中... 成功
12824: 引き続き初期化処理... 初期化成功
12827: ジョイパッドの初期化...
12834: 入力装置を見つけました
12837: デバイスの登録名:Rumble Pad
12838: デバイスの製品登録名:Rumble Pad
12840: 周期的エフェクトの作成に失敗しました。
12842: ジョイパッドの追加は正常に終了しました
12843: ジョイパッドの初期化は正常に終了しました
12845: マウスデバイスの初期化... 初期化成功
12848: キーボードデバイスの初期化... 初期化成功
12852: DirectInput 関連の初期化は正常に終了しました
25805: Direct3Dデバイスを削除しました
25806: Direct3Dオブジェクトを解放します
25808: Direct3Dオブジェクトを解放しました
25809: メインサーフェスを破棄をします... 完了しました
25811: DirectInput 関連の終了処理... 完了
25812: DirectDrawオブジェクトを解放します
25816: DirectDrawオブジェクトを解放しました
25818: DirectDraw オブジェクトの取得を行います.... 成功
25821: 引き続き初期化処理... 初期化に成功しました
25824: ビデオカードの情報
25826: 画面モードの変更処理を開始します 640 x 480 16 bit
25827: 画面解像度を変更します... 成功しました
25950: 画面モードの変更は正常に終了しました
25959: 出力画面用の DirectDrawSurface を作成します
25995: 各スクリーンメモリの配置位置
26049: PrimaryBuffer : VIDEOMEMORY
26065: BaskBuffer : VIDEOMEMORY
26072: 出力画面用の DirectDrawSurface の作成は正常に終了しました
26080: Direct3Dオブジェクトを取得します
26130: Direct3Dオブジェクトは正常に取得されました
26139: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました
26385: DirectInput関係初期化処理
26386: DirectInput7 の取得中... 成功
26389: 引き続き初期化処理... 初期化成功
26393: ジョイパッドの初期化...
26401: 入力装置を見つけました
26404: デバイスの登録名:Rumble Pad
26405: デバイスの製品登録名:Rumble Pad
26407: 周期的エフェクトの作成に失敗しました。
26409: ジョイパッドの追加は正常に終了しました
26410: ジョイパッドの初期化は正常に終了しました
26412: マウスデバイスの初期化... 初期化成功
26414: キーボードデバイスの初期化... 初期化成功
26418: DirectInput 関連の初期化は正常に終了しました
31185: Direct3Dデバイスを削除しました
31187: Direct3Dオブジェクトを解放します
31188: Direct3Dオブジェクトを解放しました
31190: メインサーフェスを破棄をします... 完了しました
31191: DirectInput 関連の終了処理... 完了
31193: DirectDrawオブジェクトを解放します
31197: DirectDrawオブジェクトを解放しました
31198: DirectDraw オブジェクトの取得を行います.... 成功
31201: 引き続き初期化処理... 初期化に成功しました
31204: ビデオカードの情報
31206: 画面モードの変更処理を開始します 640 x 480 16 bit
31207: 画面解像度を変更します... 成功しました
31329: 画面モードの変更は正常に終了しました
31335: 出力画面用の DirectDrawSurface を作成します
31374: 各スクリーンメモリの配置位置
31422: PrimaryBuffer : VIDEOMEMORY
31438: BaskBuffer : VIDEOMEMORY
31444: 出力画面用の DirectDrawSurface の作成は正常に終了しました
31454: Direct3Dオブジェクトを取得します
31466: Direct3Dオブジェクトは正常に取得されました
31513: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました
31779: DirectInput関係初期化処理
31781: DirectInput7 の取得中... 成功
31784: 引き続き初期化処理... 初期化成功
31787: ジョイパッドの初期化...
31794: 入力装置を見つけました
31797: デバイスの登録名:Rumble Pad
31799: デバイスの製品登録名:Rumble Pad
31800: 周期的エフェクトの作成に失敗しました。
31802: ジョイパッドの追加は正常に終了しました
31803: ジョイパッドの初期化は正常に終了しました
31805: マウスデバイスの初期化... 初期化成功
31808: キーボードデバイスの初期化... 初期化成功
31812: DirectInput 関連の初期化は正常に終了しました
|
Re: タスク切換時の画像復帰 ( No.17 ) |
- 名前:niwa 日時:2007/01/31 23:19
修正バージョンを試してみました。
こちらでは強制終了などは起きていません。
ただ「CreateGraphFromMem,GetDrawScreenGraph」
等の命令は使っていませんが。
以上、簡単ですが動作報告でした。
|
Re: タスク切換時の画像復帰 ( No.18 ) |
- 名前:管理人 日時:2007/02/01 14:06
SweetBlackさん、niwaさんどうも、DXライブラリの管理人です。
お試し頂き有難うございます。m(_ _)m
SweetBlackさん、大変お手数で申し訳ありませんが、不都合が無ければ
SweeetBlackさんが現在製作中のプロジェクト、若しくはSweetBlackさんの
環境で強制終了が発生することが確認できているプログラムを
BQE00322(アットマーク)nifty.com まで送って頂けないでしょうか?m(_ _)m
|
Re: タスク切換時の画像復帰 ( No.19 ) |
- 名前:SweetBlack 日時:2007/02/01 15:10
毎度お手間をおかけいたします。
つい今しがた、それらしい現象の再現に成功した……と思われます。
以下のサンプルをお試しいただければ幸いです。
//----------------------------ここから
#include "DxLib.h"
#include <stdio.h>
int GraphHandle;
// 画像読み込み関数
void LoadImage( void )
{
void *Buffer;
int BufferSize;
FILE *fp;
// 画像ハンドルを全て削除する
InitGraph();
// 画像ファイルをメモリに読み込む
fp = fopen( "test1.bmp", "rb" );
fseek( fp, 0L, SEEK_END );
BufferSize = ftell( fp );
fseek( fp, 0L, SEEK_SET );
Buffer = malloc( BufferSize );
fread( Buffer, BufferSize, 1, fp );
fclose( fp );
// メモリに読み込んだ画像データでハンドルを作成する
GraphHandle = CreateGraphFromMem( Buffer, BufferSize );
// メモリに読み込んだ画像データを解放する
free( Buffer );
}
// WinMain 関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int i,SH ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// 画像の復帰関数を登録する
SetRestoreShredPoint( LoadImage );
// 画像を読み込む
LoadImage();
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK );
// 画面のクリア
ClearDrawScreen();
// 画像の描画
DrawGraph( 0, 0, GraphHandle, TRUE );
// 裏画面の内容を表画面に反映
ScreenFlip();
i = GetColor( 255 , 255 , 255 ) ;
// メインループ(ESCキーが押されたらループを抜ける)
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
DrawString( 100 , 400 , "あいうえおかきくけこさし" , i );
}
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
//---------------------------------ここまで
DrawString、しかも文字列にある条件があるとき
(詳細不明)に落ちているようです。
最悪の場合、管理人様がご提案くださった通り、
メールにて対応させていただこうと考えてましたが、
ぎりぎり現象の再現に成功しましたので、
今回はこのままで続けさせていただきました。
ご了承ください。
|
Re: タスク切換時の画像復帰 ( No.20 ) |
- 名前:SweetBlack 日時:2007/02/01 19:48
追記です。
知人にテストプログラムを送って試して貰ったところ、
XPではエラーが発生せず、
WIN2000だと発生したようです。
|
Re: タスク切換時の画像復帰 ( No.21 ) |
- 名前:管理人 日時:2007/02/02 11:51
SweetBlackさんどうも、DXライブラリの管理人です。
テストプログラムを掲載頂き有難うございます、私の環境も Windows2000 なので見事に再現しました。
修正したバージョンをアップしましたので、宜しければお試し下さい。m(_ _)m
(ただ、DrawString とは関係が無いところでエラーが発生していたので
SweetBlack さんの環境で発生したエラーとは違うエラーだったかもしれません・・・・)
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
|
Re: タスク切換時の画像復帰 ( No.22 ) |
- 名前:SweetBlack 日時:2007/02/02 12:45
お世話になります。
早速試させていただいたのですが、
残念ながら同様のエラーが発生しました。
(前述のテストプログラムを使用し、
再構築でコンパイルしなおしてテストしました)
申し訳ありませんが、ご確認をお願いいたします。
管理人様の環境では発生しなくなったのでしたら
私の環境の問題という事になりますね……。
|
Re: タスク切換時の画像復帰 ( No.23 ) |
- 名前:niwa 日時:2007/02/02 14:08
管理人様,SweetBlack様お疲れ様です。
今回のは私の所でも発生したのでご報告します。
現象は、立ち上げたあと全画面黒の状態から何も表示されずに終了です。
その時のlogの一部です。
0:システムの情報を出力します
13: DXライブラリ Ver2.tt
14: OS Windows2000 ( Build 2195 Service Pack 4 )
:
1488: DirectDraw 関連の初期化は正常に終了しました
1493: 文字コードバッファの初期化を行います... 完了しました
//ここでlog終了
|
Re: タスク切換時の画像復帰 ( No.24 ) |
- 名前:管理人 日時:2007/02/03 13:48
SweetBlackさん、niwaさんどうも、DXライブラリの管理人です。
お二方とも駄目でしたか・・・
アップミスの可能性もありますので、再度コンパイルしたものを
アップし直してみました。申し訳ありませんが宜しければもう一度
試してみて下さい。m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
あと、私の環境で SweetBlackさんが掲載して下さったテストプログラム
をコンパイルしたものをアップしてみましたので、宜しければ SweetBlackさん、
niwaさんの環境でも正常に動作するかどうか、試してみて下さい。m(_ _)m
http://homepage2.nifty.com/natupaji/temp/ALT_TABTest.ZIP
|
Re: タスク切換時の画像復帰 ( No.25 ) |
- 名前:SweetBlack 日時:2007/02/03 14:12
管理人様、niwa様、お世話になります。
新たに頂いたものを使ってもやはりダメでした。
コンパイルされたものを使っても同様のエラーが
発生しました。
(切り替え3回目にてアプリケーションエラー発生)
こうなると環境の問題なんでしょうか……。
|
Re: タスク切換時の画像復帰 ( No.26 ) |
- 名前:niwa 日時:2007/02/04 22:35
遅くなりましたが動作報告です。
ALT_TABTestプログラムを試しましたがこちらでは落ちませんでした。
何回か起動、切り替え、終了を繰り返しましたが今の所落ちずに動いています。
>環境の問題
こちらはビデオカードとDirectXは最新と思われる物を入れてます。
でもこれじゃ無さそうですね。
|
Re: タスク切換時の画像復帰 ( No.27 ) |
- 名前:管理人 日時:2007/02/05 12:29
SweetBlackさん、niwaさんどうも、DXライブラリの管理人です。
テスト結果のご報告有難うございます。m(_ _)m
SweetBlackさん、環境の問題というか、とりあえず私と
SweetBlackさんとniwaさんの3つの限定された環境でテストした
限りでは SweetBlackさんの環境でのみ発生しているということに
なりますが、わずか3つの環境でテストした限りで、且つ描画結果が
乱れる等の現象ではなく強制終了という形で何処かではっきりと
エラーが発生してるのであれば、その箇所を突き止め調べれば
対処は可能だと思います。(そして私とniwaさんの環境では偶々
発生しなかっただけでごく一般的なバグである可能性も十分にあります)
VisualC++ 2005 Express Edition のデバッグ機能を使用すれば
エラーが発生した箇所が分かりますので、インストール作業に
それなりに時間が掛かり大変申し訳ないのですが、
もし宜しければVisualC++ 2005 Express Edition を使用しての
テストをしてみて頂けないでしょうか?m(_ _;m
|
Re: タスク切換時の画像復帰 ( No.28 ) |
- 名前:SweetBlack 日時:2007/02/05 21:05
お世話になります。
なんとかVC++の方をセッティング終わり、
テストプログラムの可動もコンパイルも確認しました。
で、肝心のデバッグ機能ですが、
なにぶん不慣れなものでこれで正しい使い方なのか
どうか判りませんが、使ってみて次のような
メッセージが出たので、一応見ていただきたいと思います。
//----------------------------ここから
○○.exe の 0x5c015851 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x025c0200 に書き込み中にアクセス違反が発生しました。
//----------------------------ここまで
これが探していたエラーの原因なのかどうかまで
今の私では判断つきません。
違っていたらご指摘ください。
私の方でも引き続き試行錯誤してみます。
|
Re: タスク切換時の画像復帰 ( No.29 ) |
- 名前:管理人 日時:2007/02/06 13:28
SweetBlackさんどうも、DXライブラリの管理人です。
ご報告有難うございます、お手数お掛けして申し訳ありませんでした。m(_ _)m
そして、本当に申し訳ありません、SweetBlackさんの環境で実行して
頂こうと思って作成していた VisualC++ 2005 Express Edition 用の
テストプロジェクトで、私の環境でもエラーが発生しました。m(_ _;m
これが SweetBlackさんの環境で発生していたエラーかどうかはまだ
分かりませんが、宜しければ今回発見したエラーを修正したバージョンを
お試しになってみて下さい。m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
|
Re: タスク切換時の画像復帰 ( No.30 ) |
- 名前:SweetBlack 日時:2007/02/06 19:55
管理人様。お世話になります。
新しいバージョンを使って
テストプログラムを試してみたところ、
10回程度切り替えを繰り返しても落ちませんでした。
おそらくなおっているものと思われます。
ありがとうございました。
ただ、やはり製作中のプログラムに組み込んでみたところ
落ちる確率は格段に減っていますが、やはり落ちてしまいました。
まだ他に原因がありそうですので、さらに絞込み作業を続けるつもりです。
ちなみに、偶然気づいたのですが、
上記のテストプログラムを起動中に、
その「製作中のプログラム」を起動して
タスク切り替えをしようとした場合は
ほぼ確実に落ちるようでした。
さらに調べてみて何かわかりましたらご報告させていただきます。
|
Re: タスク切換時の画像復帰 ( No.31 ) |
- 名前:管理人 日時:2007/02/07 13:50
SweetBlackさんどうも、DXライブラリの管理人です。
ご報告有難うございます、テストプログラムで確認できる
エラーは解消出来たみたいですね。
VC++ のデバッグ機能にはエラーが発生した箇所を確認できる機能が
ありますので、宜しければ SweetBlackさんが製作中のプログラムを
VisualC++ 2005 Express Edition 上で実行してみて頂けないでしょうか?
エラー箇所がDXライブラリ内部の場合は詳細な位置はわかりませんが、
エラーが発生して処理が一時的に VC++ 2005 EE に戻ってきた状態で、
VC++ 2005 EE のメニューから
「デバッグ」→「ウインドウ」→「呼び出し履歴」
を選択することでエラーが発生した箇所に行き着くまでにどんな関数を
辿ったかを確認できる「呼び出し履歴」ダイアログが表示されますので、
宜しければプログラム中の何処でエラーが発生したかをご確認になって
みてください。m(_ _)m
|
Re: タスク切換時の画像復帰 ( No.32 ) |
- 名前:SweetBlack 日時:2007/02/07 21:33
管理人様。何度もお世話になります。
デバッグのやり方を教えていただいてありがとうございます。
さて、落ちる件ですが、前回の書き込みで
落ちる確率が格段に減ったと書きましたが、
確実に落ちるやり方が判りました。
(前述のテストプログラムでは落ちません)
ALT+TABで切り替える際に、完全に切り替える前に
さらに切り替えようとすると確実に落ちます。
(つまりALTを押しっぱなしでTABだけ連打する)
そして、デバッグの結果ですが。次のようになりました。
なにか間違いや足りない点がございましたらご指摘ください。
プログラムにおける2種類の状態で前述の操作をしてみました。
(具体的にはプレイ中画面、タイトル画面)
//---------------------------------ここから
例1:プレイ中の画面
<エラーメッセージ>
○○.exe の 0x5c015851 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x04280a00 に書き込み中にアクセス違反が発生しました。
<逆アセンブル表示>
5C015820 push eax
5C015821 mov ecx,esi
5C015823 call 5C014CCF
5C015828 cmp eax,ebx
5C01582A jne 5C015901
5C015830 mov eax,dword ptr [esi+33B8h]
5C015836 add eax,dword ptr [esi+3358h]
5C01583C mov ecx,dword ptr [esi+1A78h]
5C015842 mov ebx,ecx
5C015844 lea edx,[esi+1A74h]
5C01584A mov esi,dword ptr [edx]
5C01584C shr ecx,2
5C01584F mov edi,eax
5C015851 rep movs dword ptr es:[edi],dword ptr [esi] ← ここにマーク
5C015853 mov ecx,ebx
5C015855 and ecx,3
5C015858 rep movs byte ptr es:[edi],byte ptr [esi]
5C01585A mov dword ptr [edx],eax
5C01585C jmp 5C0158FF
5C015861 mov eax,dword ptr [esi]
5C015863 push ebx
5C015864 mov ecx,esi
5C015866 call dword ptr [eax+0CCh]
5C01586C cmp eax,ebx
5C01586E jne 5C015901
5C015874 lea edi,[esi+3350h]
5C01587A mov eax,dword ptr [edi]
<呼び出し履歴>
d3dim700.dll!5c015851() ← これにマーク
[下のフレームは間違っているか、または見つかりません。d3dim700.dllに対して読み込まれたシンボルはありません。]
d3dim700.dll!5c016b72()
d3dim700.dll!5c018505()
○.exe!OnePixelOverCopy() + 0x486 バイト
○○.exe!G_D3D_DrawGraph() + 0x133 バイト
○○.exe!5T_DrawGraph() + 0x26d バイト
○○.exe!DrawGraph() + 0x1f バイト
例2:タイトル画面
<エラーメッセージ>
○○.exe の 0x5c015851 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x036e0000 に書き込み中にアクセス違反が発生しました。
<逆アセンブル>
例1と同じ
<呼び出し履歴>
d3dim700.dll!5c015851()
[下のフレームは間違っているか、または見つかりません。d3dim700.dllに対して読み込まれたシンボルはありません。]
d3dim700.dll!5c016b72()
d3dim700.dll!5c00f32f()
d3dim700.dll!5c016bc1()
d3dim700.dll!5c018505()
○○.exe!G_D3D_DrawGraph() + 0x600 バイト
○○.exe!5T_DrawGraph() + 0x26d バイト
○○.exe!DrawGraph() + 0x1f バイト
//---------------------------------ここまで
以上です。
呼び出し履歴は、先頭行が最後尾だと推察して、
先頭から数行のみ抜粋しております。
それではよろしくお願いいたします。
|
Re: タスク切換時の画像復帰 ( No.33 ) |
- 名前:管理人 日時:2007/02/08 13:56
SweetBlackさんどうも、DXライブラリの管理人です。
ご情報有難うございます。
私の環境でもALT+TABのALTを押しっぱなしにすることで
ご報告して頂いたエラーを容易に発生させることが出来ました。orz
こちらのエラーが発生しないように修正したバージョンをアップ
しましたので、宜しければお試し下さい。m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
|
Re: タスク切換時の画像復帰 ( No.34 ) |
- 名前:SweetBlack 日時:2007/02/08 20:29
管理人様。
ありがとうございます!
試してみましたが、問題なく動いております。
これで心置きなく製作を続ける事ができます。
長々とおつき合いありがとうございました。
|
Re: タスク切換時の画像復帰 ( No.35 ) |
- 名前:管理人 日時:2007/02/10 16:47
こちらこそ中々解決出来ずにお手数お掛けしました。m(_ _;m
niwaさんもご協力頂き有難う御座います。m(_ _)m
|