トップページ > 過去ログ > 記事閲覧
ChangeWindowModeでウィンドウが表示されない
名前:formula 日時: 2007/02/26 08:36

こんにちは。 新しいPCを買ったので乗り換えたところ、 ChangeWindowMode(TRUE)を使用すると以下のようなメッセージが出てウィンドウが表示されません。 'DxLib.exe': 'C:\WINDOWS\system32\MSCTFIME.IME' を読み込みました。シンボルが読み込まれていません。 'DxLib.exe': 'C:\WINDOWS\system32\IMJP9.IME' を読み込みました。シンボルが読み込まれていません。 'DxLib.exe': 'C:\WINDOWS\system32\IMJP9K.DLL' を読み込みました。シンボルが読み込まれていません。 実行したのは"DXライブラリ VisualC++用(Ver2.22f)をダウンロードする(自己解凍形式(約3.09MB))"に入っていた "サンプルプログラム実行用フォルダ"内のプロジェクトにChangeWindowMode(TRUE)を足したものです。 サンプルを初期状態のまま実行するとフルスクリーンで正常に実行されるのですが、 DxLib_Initの前にChangeWindowMode(TRUE)を付け加えてウィンドウモードで起動しようとすると、 上記のメッセージが出力ウィンドウに出力され、ウィンドウが表示されません。 ステップ実行してみるとChangeWindowMode通過後、DxLib_Initから出てきませんでした。 DxLib_Initの後にChangeWindowMode(TRUE)を書くと、 フルスクリーンで起動後、ウィンドウモードに変更されて正常に実行されます。 プロジェクトのプロパティで/MTや/MTdをいじってみましたがどれも同じ症状でした。 ウィンドウモードが使えないと不便なので何とかならないでしょうか? DXライブラリ ver2.22f Windows XP Professional SP2 VisualStudio2005 Professional Edition

Page: 1 |

Re: ChangeWindowModeでウィンドウが表示されない ( No.1 )
名前:管理人 日時:2007/02/27 13:26

 formulaさん始めまして、DXライブラリの管理人です。  うーん、なんででしょう。  DXライブラリで作成したソフトを作成すると、起動時の カレントディレクトリに Log.txt というログファイルが 作成されるようになっているのですが、そのログファイルを 見れば何か分かるかもしれませんので、宜しければ件の ChangeWindowMode( TRUE );  をした状態で起動した際の Log.txt の内容を丸ごと こちらの掲示板に貼り付けてみて頂けないでしょうか?
Re: ChangeWindowModeでウィンドウが表示さ ( No.2 )
名前:formula 日時:2007/02/27 13:50

素早い対応ありがとうございます。 以下がLog.txtの内容です。 0:システムの情報を出力します 10: DXライブラリ Ver2.22f 11: OS WindowsXP ( Build 2600 Service Pack 2 ) 112: CPU動作速度:大体2.38GHz 113: MMX命令を使用します 114: CPUベンダ:GenuineIntel 115: CPU名:Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz 116:COMの初期化... 成功しました 217:メモリ総量:2046.42MB 空きメモリ領域:1274.72MB 218:タイマーの精度を検査します 218:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 219: パフォーマンスカウンターを使用します タイマー分解能 : 3579.545000 KHz 219: ソフトの二重起動検査... 二重起動はされていませんでした 221:ウインドウクラスを登録します... 登録に成功しました 222:ウインドウモード起動用のウインドウを作成します DxLib_Initの後でChangeWindowMode( TRUE );した場合のLogも必要でしょうか?
Re: ChangeWindowModeでウィンドウが表示されない ( No.3 )
名前:管理人 日時:2007/02/28 13:26

 formulaさんどうも、DXライブラリの管理人です。  Log.txt の貼り付け有難うございます。とりあえず DxLib_Init の後に ChangeWindowMode( TRUE ); した場合の Log.txt は結構です。  止まってしまっている箇所ですが、ウインドウの作成中という今までに 無いケースで、プログラムを見ただけではちょっと原因が分かりません。m(_ _;m  止まっている間、中で何が行われているのかが分かれば 何を修正すれば良いのかも分かると思いますので、宜しければ 停止の現場(?)を直接ご確認してみて頂けないでしょうか?  もしご承諾頂けるのでしたら、こちらの http://homepage2.nifty.com/natupaji/temp/ChangeWindowModeTest.zip  DXライブラリのソース付きの VisualStudio2005 用のプロジェクトを 実行して、ウインドウが作成されずに止まっている状態を作ってみて下さい。 その状態で 「デバッグ」→「すべて中断」 として、プログラムを一時停止状態にして、 一時停止になった状態で更に 「デバッグ」→「ウインドウ」→「スレッド」 と 「デバッグ」→「ウインドウ」→「呼び出し履歴」 を選択して、中断した時点で走っているスレッドの一覧と、 一時停止した地点に至るまでにどの関数を辿ったかを知ることが 出来る呼び出し履歴を表示してください。  この状態でスレッドの一覧から「__tmainCRTStartup」と書かれている 項目をダブルクリックすると WinMain 関数から始まっているスレッドが 停止時点で実行していたプログラムの箇所が表示されますので、 申し訳ありませんがそのプログラムのファイル名と行番号と、 その地点に行き着くまでに辿った関数を教えて下さい。m(_ _;m
Re: ChangeWindowModeでウィンドウが表示さ ( No.4 )
名前:formula 日時:2007/03/01 03:26

DxGateway.cppの35行目、"Result = ST_DxLib_Init() ;"で止まりました。 以下、呼び出し履歴です。 ntdll.dll!7c94eb94() [下のフレームは間違っているか、または見つかりません。ntdll.dll に対して読み込まれたシンボルはありません。] ntdll.dll!7c94d85c() kernel32.dll!7c8023ed() kernel32.dll!7c802451() ChangeWindowModeTest.exe!ST_ProcessMessage() 行 4520 + 0xa バイト C++ ChangeWindowModeTest.exe!DxActiveWait() 行 4624 + 0x5 バイト C++ ChangeWindowModeTest.exe!ST_SetDrawArea(int x1=0, int y1=0, int x2=0, int y2=0) 行 6048 C++ ChangeWindowModeTest.exe!WM_MOVEShred(long lParam=37292303) 行 15914 + 0x15 バイト C++ ChangeWindowModeTest.exe!DxLib_WinProc(HWND__ * hWnd=0x001d08a4, unsigned int message=3, unsigned int wParam=0, long lParam=37292303) 行 4132 + 0x9 バイト C++ user32.dll!77cf8734() user32.dll!77cf8816() user32.dll!77cfb4c0() user32.dll!77cfb50c() ntdll.dll!7c94eae3() user32.dll!77cf94be() user32.dll!77d0f5ba() user32.dll!77cfd598() uxtheme.dll!58731af6() uxtheme.dll!5873367a() user32.dll!77d0f134() kernel32.dll!7c80e494() ChangeWindowModeTest.exe!DxLib_WinProc(HWND__ * hWnd=0x001d08a4, unsigned int message=71, unsigned int wParam=0, long lParam=1204312) 行 4372 + 0x18 バイト C++ user32.dll!77cf8734() user32.dll!77cfd05b() user32.dll!77cfb4c0() user32.dll!77cfd0a5() ntdll.dll!7c94eae3() user32.dll!77cfc027() nview.dll!1006b9b3() user32.dll!77cf88d1() user32.dll!77cfb755() user32.dll!77cfb785() nview.dll!1006c5d2() nview.dll!1006ce44() ChangeWindowModeTest.exe!DxLib_WinProc(HWND__ * hWnd=0x00240804, unsigned int message=70, unsigned int wParam=0, long lParam=1206384) 行 4374 + 0x2b バイト C++ user32.dll!77cfb3f9() user32.dll!77cf8bd9() user32.dll!77cfb3cc() user32.dll!77cfb3a7() user32.dll!77cfbaa4() user32.dll!77cfb96b() user32.dll!77cfb96b() uxtheme.dll!587318d7() uxtheme.dll!5873338a() user32.dll!77cf8734() user32.dll!77cfd074() user32.dll!77cf8bd9() user32.dll!77cf885a() user32.dll!77cf882a() nview.dll!10070dcd() user32.dll!77cfeaf2() user32.dll!77d3624f() user32.dll!77cfcf9e() ntdll.dll!7c94eae3() user32.dll!77cfd8b0() ChangeWindowModeTest.exe!InitializeWindow() 行 1173 + 0x10 バイト C++ ChangeWindowModeTest.exe!ST_DxLib_Init() 行 541 + 0x5 バイト C++ > ChangeWindowModeTest.exe!DxLib_Init() 行 35 + 0x5 バイト C++ ChangeWindowModeTest.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f22, int nCmdShow=1) 行 11 + 0x5 バイト C++ ChangeWindowModeTest.exe!__tmainCRTStartup() 行 315 + 0x1c バイト C kernel32.dll!7c816fd7() よろしくお願いします。m(_ _)m
Re: ChangeWindowModeでウィンドウが表示されない ( No.5 )
名前:管理人 日時:2007/03/01 15:09

 formulaさんどうも、DXライブラリの管理人です。  お試し頂き有難うございます。  貼り付けて頂いた呼び出し履歴を元に、原因と思しき個所に 変更を加えたバージョンをアップしましたので、宜しければ もう一度お試しになってみて下さい。m(_ _)m http://homepage2.nifty.com/natupaji/temp/ChangeWindowModeTest.zip
Re: ChangeWindowModeでウィンドウが表示さ ( No.6 )
名前:formula 日時:2007/03/02 00:34

無事ウィンドウが表示されました! ありがとうございます。m(_ _)m あと本件には関係ないのですが、ウイルスバスター2007を使用している場合、 「迷惑メール対策ツールバー」が有効になっている("TMAS_OEMon.exe"が駐屯している)と、 ウィンドウ上(フルスクリーンを含む)でマウスを動かしたとき 'ChangeWindowModeTest.exe': 'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' を読み込みました。シンボルが読み込まれていません。 'ChangeWindowModeTest.exe': 'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をアンロード というのが出力ウィンドウに表示され、プログラムが一瞬止まります。 マウスを動かし続ければずっと止まったままです。 設定で「迷惑メール対策ツールバー」を無効にすると解決しますので、 もし同じ症状の方がおられましたら試してみてください。

Page: 1 |