今年もよろしくお願いします。
■プログラミング関連
ページにまとめるの面倒だし、今後は「プログラミング」ラベルに統一していきます。■MessageBox
DXLibでもwindows.hインクルードすれば使える。変数名がWin32API独自でややこしいけど、下記くらいで覚えておけばOK。
int MessageBox( HWND①, char*②. const char*③, int④)
①:ウィンドウハンドル。DXLibは
HWND GetMainWindowHandle()で取得可能。
②:本文
③:キャプション(ウィンドウのタイトルバーに出る文字)
④:フラグ
フラグと返り値については下記が詳しい(当然MSDNにも載ってる)
●Win32API(C言語)編 第5章 メッセージボックス
・MB_OK :OKボタンのみ。(IDOK)
・MB_OKCANCEL :IDOK,IDCANCEL
・MB_YESNO :IDYES,IDNO
・MB_YESNOCANCEL :IDYES,IDNO,IDCANCEL
■GetFileNameダイアログのOSハングアップ問題
下記条件を満たすと、特定の環境ではほぼ100%OSハングアップする。・デバッグビルドであること
・WinVista以降(「ドキュメントライブラリ」などの仮想フォルダがあるOS)
・初期フォルダを設定せずに実施=ドキュメントライブラリが開かれる
試していないが、「ドキュメントライブラリ」以外の仮想フォルダでもアカンかも知れない。(試したくもないが)
結論として、回避策は
「初期参照フォルダを必ず設定して、『仮想フォルダ』を参照しないようにする」という方法が手っ取り早い。
設定方法は下記(Win32API)
ファイル選択の場合
フォルダ選択では発生しない。
一応、フォルダ選択の場合の初期フォルダ指定も調べたのでリンク掲載。
フォルダ選択の場合
一旦発生したOSハングアップは止められず、シェルがゆっくりと固まっていく。
(電源ボタンで落とすか、リセットボタンでリセットするしかない。)
問題はこれがどのマシンでも起こる問題では無いらしく、MSフォーラムでも「稀」で一蹴されていた。「有償サポート受けたら?」とか言ってたが、こんなことで有償サポートを受ける必要も無いJARO。
考えられる問題は下記が上げられていたが、イマイチ原因とは断定出来ない。
・シェル拡張の入れすぎ
・CypherTech系(認証制御系)(cymon.sys)
結局回避策(初期フォルダ指定)をして騙し騙し使う他無さそう。
なお、下記条件の場合は、いずれも発生しない。
・リリースビルド(通常のアプリケーションも同様)
・仮想フォルダの無いOS
・仮想フォルダ以外の通常フォルダ
仮想フォルダはVistaあたりから追加されたようだが、とあるプロジェクトでも別の問題が発生していた。
OSハングアップさせるくらいなら、せめてNGで返して終わるくらいはして欲しい。
■雑記
空飛ぶ象(Habok) |
通常は3Dモデルを表示しているので、これにすることで(微妙に)軽くなる模様。
画像はHABOK神の荒ぶり(元々ネタだったが、MODが取り入れてしまった例)
まあ旗艦だし |
キス島ってクリア出来るの?
さでずむらしい |
モーションエディタの道のりは長い |
うーん |
そしてまだドット完成してない問題 |
0 件のコメント:
コメントを投稿