トップページ > 記事閲覧
始めてそのゲームを起動するPCで出る異常
名前:たろう 日時: 2017/01/28 00:54

おせわになっておいります、たろうです。また質問させて下さい。 win8.1のタブレットPCではじめてその(DXlibをつかって作った)ソフトを起動した時にかぎり、 ゲームを通常通り起動して遊べるところまでは一緒なのですが ゲームを終了(DxLib_End() ;return 0;を通って)した時、 ゲームは閉じるのですがそのあとウィンドウズのダイアログボックスが出て、 正常に終了されませんでしたと言うような注意が表示されます。 その後はパソコンを閉じて再起動後などでも正常にゲームを終了することが出来ます。 ただし、パソコンをリフレッシュして1回目の起動のときだけまたコレが起こります。 logを見たのですが、 異常に終了した時は最後の方の ---------------- DirectInput 関連の終了処理... 完了 ---------------- でログが終わっていて 正常に終了した時はそのあと ---------------- DirectInput 関連の終了処理... 完了 DirectSound の終了処理は正常に終了しました ウインドウを閉じようとしています ウインドウが破棄されようとしています ソフトを終了する準備が整いました Alloc memory dump Total size:0(0.000kb) Alloc num:0 ---------------- がつづいています。 すみません、リフレッシュ出来るPCが一つしかないため、 1台でしか確認できていないので、 そのPCでしか発生しないのかもしれないのですが、 始めて起動するPCでこの様な異常が出ないようにしたいとおもいます。 どのように回避したらよろしいでしょうか。 もしわかりましたら教えていただけると助かります。 いつもすみません。よろしくおねがいいたします。 追記。もう一点log(7行目)に違いがありました --------異常---------- ディスプレイ情報のセットアップ完了 システムの情報を出力します --------正常---------- ディスプレイ情報のセットアップ完了 対応している画面モードなし システムの情報を出力します ---------------------- どちらも同じPCで、1回目の起動かどうかの違いだけです。 よろしくお願い致します。
メンテ

Page: 1 |

Re: 始めてそのゲームを起動するPCで出る異常 ( No.1 )
名前:管理人 日時:2017/01/29 00:51

リフレッシュして一回目だけですが…検証が大変ですね… 申し訳ないことに現在手軽にリフレッシュ( 初期化+クリーンインストール )できる環境が無いので 手元で再現のテストはできなかったのですが、 ”DirectInput 関連の終了処理... 完了” が出力されてから ”DirectSound の終了処理は正常に終了しました” が出力されるまでの間でエラー終了する可能性のありそうな箇所が二つほどありましたので、 それを修正したものをこちらにアップしました https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』をして下さい) これで直っていると良いのですが…
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.2 )
名前:たろう 日時:2017/01/29 06:29

たろうです。いつもありがとうございます。 アップしていただいたバージョンで試しましたが、特に変化はなく、 パソコンのリフレッシュ後の1回目の起動では終了時に同じ異常が発生しました。 ログも、同じく「DirectInput 関連の終了処理... 完了」で終わっています。 このような異常がでる場合においては、 どのあたりに問題があるケースが考えられるでしょうか。 出来れば直したいので、アドバイスを頂けると助かります。 いつもすみません。よろしくお願いいたします。
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.3 )
名前:管理人 日時:2017/01/29 11:47

うーん駄目でしたか… > このような異常がでる場合においては、 > どのあたりに問題があるケースが考えられるでしょうか。 すみません、「クリーンインストール後、初回だけエラーが発生する」という現象は 初めてなので何が原因か検討もつきません エラーが発生する環境でDXライブラリのソースも含まれるプロジェクトをデバッグ実行して、 エラーが発生した箇所のソースファイルと行番号が分かれば原因が分かると思うのですが、 たろうさんが普段お使いの開発環境はなんでしょうか?( VisualStudio 2015 など )
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.4 )
名前:たろう 日時:2017/01/29 15:41

Visual Studio Community 2015を使っています。 DXライブラリのソースも含まれるプロジェクトをデバッグ実行して、 エラーが発生した箇所のソースファイルと行番号を調べる…というのは、 ソリューション構成をDEBUGにして、「デバッグの開始」をすると 異常終了した時に、visual studioが自動でその箇所を表示 してくれるという感じなんでしょうか? すみません、常識なのかもしれませんが知識が足りずやり方が分からないので、 大まかに教えていただけると助かりますm(_ _)m お忙しいところすみません。よろしくお願い致します。
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.5 )
名前:管理人 日時:2017/01/29 23:45

> ソリューション構成をDEBUGにして、「デバッグの開始」をすると > 異常終了した時に、visual studioが自動でその箇所を表示 > してくれるという感じなんでしょうか? その通りです、ただ、『デバッグ実行だとエラーが発生しない』という結果になる可能性もありますが… (- -;; というわけで、VisualStudio Community 2015 用の『DXライブラリのソースごとビルドするプロジェクト』を こちらにアップしましたので、よろしければダウンロードしてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe ファイルは自己解凍形式となっていて、実行すると DxLibSourceTest という名前のプロジェクトフォルダが 作成されますので、そのフォルダの中にある DxLibSourceTestVS2015.sln をダブルクリックしてプロジェクトを開き、 F5キー又はVisualStudoi2015のメニューから『デバッグ』→『デバッグの開始』を選択してデバッグ実行をしてください 実行されるプログラムは DxLibSourceTest フォルダの中にある TestProgram.cpp に書かれているプログラムで、 四角形が画面を左右に動くだけという単純なものです、エラーを発生させるにあたって特定のプログラムで なければならないということがありましたら、お手数で申し訳ありませんが TestProgram.cpp の中身を書き換えてください そして、プログラム終了時に目論見どおりエラーが発生しましたら、エラーが発生した箇所のソースファイルと行が 指し示されると思いますので、お手数で申し訳ありませんがそのソースファイルのファイル名と行番号、 あとVisualStudoi2015のメニューの『デバッグ』→『ウインドウ』→『呼び出し履歴』を選択すると表示される 「呼び出し履歴」の内容( 何の関数を経てエラーの箇所に行き着いたか )も教えてください m(_ _;m
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.6 )
名前:たろう 日時:2017/01/31 00:05

おせわになっております。たろうです。 リフレッシュ後にvisualstudioのインストールに必要なウィンドウズアップデートがとてつもなく長い時間がかかり、 PC性能が弱いのでエラーによるやり直しもあったりと困難が続き、、まだ1回しか試せてないのですが、 頂いたプログラムではエラーは出ませんでした。 次に、頂いたプログラムのソースを私のゲームのものと入れ替えて とりあえず「リフレッシュせずに」デバッグした所、 @フルスクリーンで起動すると終了と同時にフリーズして、フルスクリーン状態なので何も情報が見れず、PCの強制終了が必要でした Aウィンドウモードだとエラーは出ずに普通に終了出来ました。 Bフルスクリーンでもう一度起動すると今度はゲームが開かずにエラーが出ました Run-Time Check Failure #2 - Stack around the variable PosY was corrupted.(※ダイアログボックス) DxLibSourceTestVS2015.exe!DxLib::DrawCircleFilllAA(float s, float y, float r,int posnum〜(※呼び出し履歴のこれに矢印) 多分この状況で再度リフレッシュをして、ウィンドウズアップデートからvisualstudioのインストールとやったあとテストをしても、 終了時にフルスクリーンのままフリーズしてしまい情報を見る事が出来ないかと思います。なにか方法は無いでしょうか。 すみません、引き続きアドバイスをいただけますでしょうか よろしくお願いいたします。
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.7 )
名前:たろう 日時:2017/01/31 01:50

フルスクリーンのフリーズ中にデバッグ情報を見る方法が分かり、 それによって原因らしきものがわかりました。 ※リフレッシュ後の確認は時間がかかるので、まだ実行できていません。 以前、タッチで画面をバタバタするとゲームが遅くなってPC再起動するまでなおらないという質問をさせていただきました。 外部のDLLから自作の関数を読み込んでwin8以上でしか使えないタッチ機能を使うという方法でなんとか解決したのですが、 DLL開放と終了を、FreeLibrary(hDllInstance);DxLib_End() ; return 0 ;としていたので FreeLibrary(hDllInstance);のあとゲームが完全に閉じられる前に 終了ボタンを押す指でタッチのメッセージが送られて それに反応してメッセージ処理上にあるDLLから読みこんだ解放済みの関数が呼ばれてしまい、 それでエラーが出ていたようです。 解放後に関数を呼ばないように修正した所、普通に終了することが出来ました。 結局私のプログラムミスが原因のエラーだったようです。すみませんm(_ _)m 上記Bのエラーについてもメモリリークとか、 私のプログラムミスが原因である可能性が高いでしょうか 重ね重ねすみません。よろしくお願いいたします。
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.8 )
名前:管理人 日時:2017/02/01 02:09

原因が分かった様で何よりです (^ ^ > 上記Bのエラーについてもメモリリークとか、 > 私のプログラムミスが原因である可能性が高いでしょうか すみません、DXライブラリのバグです、DrawCircleAA と DrawOvalAA の引数 posnum に 256以上の値を指定するとメモリの不正なアクセスが発生するバグがありました orz 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』をして下さい)
メンテ
Re: 始めてそのゲームを起動するPCで出る異常 ( No.9 )
名前:たろう(解決) 日時:2017/02/02 04:34

ありがとうございます。せめてバグの発見に役立てて良かったです。 今回は私のミスで、お手数をおかけしてしまいすみませんでした(._.) まだリフレッシュ後の確認は他のデバッグにPCを役立てたい都合上していないのですが 間違いないと思いますので、解決をつけさせていただきます。 ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存