Re: 実行ファイルの動作について ( No.1 ) |
- 名前:なな 日時:2017/06/29 00:10
追記になります
開発環境 Visual Studio2017, OS windows10 64bit メモリ4GB CPU corei5
|
Re: 実行ファイルの動作について ( No.2 ) |
- 名前:なな 日時:2017/06/29 11:58
さらに追記になります。デバッグで追っかけると、以下の文面がありました。
(ここまでは目立った不自然な点はなし)
2955:DXライブラリの初期化処理終了
0x75DBA9F2 で例外がスローされました (Test3.exe 内): Microsoft C++ の例外: wil::ResultException (メモリの場所 0x017ADA88)。
0x75DBA9F2 で例外がスローされました (Test3.exe 内): Microsoft C++ の例外: [rethrow] (メモリの場所 0x00000000)。
メモリの処理なんでしょうか?
|
Re: 実行ファイルの動作について ( No.3 ) |
- 名前:管理人 日時:2017/06/30 00:16
|
Re: 実行ファイルの動作について ( No.4 ) |
- 名前:なな 日時:2017/06/30 12:44
う〜ん、一応最新版を当てなおしてリビルドしてみたのですが、状況が改善されませんね。
そもそもウィンドウが形成されず、初めからフルスクリーンで一瞬表示され消えてしまいます。
その他の現象としてほかのアプリケーション(edgeやexplorer)が勝手にサイズ変更されたりします。
まだ試してないのですが、visual studio 2017 と 2015を両方インストールしてあるのがもしかしたら原因かもしれないです。
時間に余裕ができ次第確認します。
|
Re: 実行ファイルの動作について ( No.5 ) |
- 名前:管理人 日時:2017/07/01 21:24
お試しいただきありがとうございます
最新版でも駄目でしたか…
WaitKey は戻り値が「キーが押された場合はキーコードが、マウスクリックやその他の原因の場合は -1 が返る」ようになっています
なので、よろしければこちらのプログラムを実行して、WaitKey の戻り値の値を教えていただけないでしょうか? m(_ _;m
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int KeyCode ;
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1 ;
// WaitKey を実行
KeyCode = WaitKey() ;
// 描画先を裏画面にする
SetDrawScreen( DX_SCREEN_BACK ) ;
// メインループ(何かキーが押されたらループを抜ける)
while( ProcessMessage() == 0 )
{
// 画面のクリア
ClearDrawScreen() ;
// WaitKey の戻り値を表示
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "WaitKey の戻り値 : %d", KeyCode ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End() ;
// ソフトの終了
return 0 ;
}
> そもそもウィンドウが形成されず、初めからフルスクリーンで一瞬表示され消えてしまいます。
ウインドウモードで起動するには DxLib_Init を呼ぶ前に ChangeWindowMode( TRUE ) ; を実行しておく必要がありますので、
フルスクリーンモードで起動するのは正常です
|
Re: 実行ファイルの動作について ( No.6 ) |
- 名前:なな 日時:2017/07/01 22:19
管理人様のプログラムだと問題なく動作しました。
WaitKey関数の戻り値は25、28などで問題なしですね。
ただ //ChangeWindowMode(TRUE); とすると
ビルドからの実行 → 何も起こらず下のタスクにアイコンのみ現れる → それをクリックするとフルスクリーンで動作し、
キーを押すと画面上にWaitKey関数の戻り値が表示される(ただしアプリが終了せず、タスクマネージャーから直接閉じる必要がある)
という感じになりました。
>ウインドウモードで起動するには DxLib_Init を呼ぶ前に ChangeWindowMode( TRUE ) ; を実行しておく必要がありますので、
>フルスクリーンモードで起動するのは正常です
そうだったのですか。失礼しました。
|
Re: 実行ファイルの動作について ( No.7 ) |
- 名前:管理人 日時:2017/07/01 22:38
お試しいただきありがとうございます
> ただ //ChangeWindowMode(TRUE); とすると
> ビルドからの実行 → 何も起こらず下のタスクにアイコンのみ現れる → それをクリックするとフルスクリーンで動作し、
タスクにアイコンのみ現れる、というのが謎です…
クリックするとフルスクリーンになるということは、何らかの原因で別のウインドウがアクティブになってしまい、
ビルドした実行ファイルの実行が非アクティブになっているのだと思います
> キーを押すと画面上にWaitKey関数の戻り値が表示される(ただしアプリが終了せず、タスクマネージャーから直接閉じる必要がある)
> という感じになりました。
WaitKey関数の戻り値が表示された状態で、ALTキーと F4キーを押すとプログラムが終了します( ウインドウの×ボタンを
押したときと同じ動作が行われます )
> >ウインドウモードで起動するには DxLib_Init を呼ぶ前に ChangeWindowMode( TRUE ) ; を実行しておく必要がありますので、
> >フルスクリーンモードで起動するのは正常です
> そうだったのですか。失礼しました。
作成された実行ファイルを直接実行した場合や、ウインドウモードで実行した場合は正常に動作するとのことで、
とりあえずななさんの作業に支障は無くなったと思うのですが如何でしょうか?
|
Re: 実行ファイルの動作について ( No.8 ) |
- 名前:なな 日時:2017/07/01 22:46
>作成された実行ファイルを直接実行した場合や、ウインドウモードで実行した場合は正常に動作するとのことで、
>とりあえずななさんの作業に支障は無くなったと思うのですが如何でしょうか?
そうですね。とりあえずフルスクリーンで作る予定はなかったので大丈夫です。
お忙しい中ありがとうございました。数年ぶりにDxlibでプログラム楽しませてもらいます!
|