- ベストアンサー
MFCでのPC毎の挙動について
- MFC使用のアプリケーションについて質問があります。
- 開発を行ったPCでは問題なく想定した動作をしていますが、別のPCで起動させるとウィンドウのみ出力され、×ボタンのクリックなど全く動作しない状態になってしまいます。
- マルチメディアタイマーとダブルバッファなどを使用していますが、何か影響しますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MFCではありませんが、私もVC++ 2003、Win32 API、DirectX SDK Feb 2006を使って開発したアプリが、PCごとに異なる動作をする現象に遭遇したことがあります。 そのアプリではAnimateWindow()を使っていたのですが、特定の環境下でキー入力ができなくなる(メインウィンドウにWM_KEYDOWNメッセージが送信されなくなる)不具合が出ていました。 開発に使った自作PC(XP SP2、Athlon64 X2 3600+, GeForce 7600GS)では問題なかったのに、ターゲット環境のHP xw4400(XP SP2, Core2Duo E6600, Quadro FX 560)では不具合が出る、といった状況です。Direct3D 9の機能も使っていましたが、ハードウェア性能に依存するような上位の機能は使っていませんでした。 テストしたわけではないので真偽のほどは分かりませんが、「Visual C++ 2003 IDEがインストールされているかどうか」(あるいはVC7ランタイムの扱いの違い、例えばシステムフォルダにインストールされているのか、それともアプリのフォルダにあるのか)が関係するかもしれません。 あとはハードウェア構成の違いや、既にインストールされているソフトウェアとの相性を調べていくしかないように思います。
その他の回答 (1)
- titokani
- ベストアンサー率19% (341/1726)
ありがちな話としては、ファイルのコピーし忘れとか、パスを絶対パスて指定していたりといったことがありますが、たまには動くということですから違いますね。 あまり一般的な話ではなさそうなので、地道に調べるしかないと思います。 IDEをインストールするのは難しいでしょうから、ログファイルを出力するようにしれば、どこでどのように引っかかっているのかわかるでしょう。 2台だけじゃなくて、もっといろいろな環境を動かしてみるのも手がかりになると思います。
お礼
回答ありがとうございます。 解決したわけではありませんが、動くようにはなりました。 対策はただ単純に処理を軽くしただけで、その他は何もしていません。 そもそも処理が重いことは認識していましたが、 確認用に作成した「320×427を塗り潰す」という処理のみ でも同様の現象が起きていたため悩んでいました。 完全解決ではありませんが、動作させる目的のみ達成 されたので解決とさせていただきます。 また時間がある時に地道に検証を行ってみます。 ありがとうございました。
お礼
回答ありがとうございます。 答えが出たわけではありませんが、動作させることが出来た為 解決とさせていただきます。 その他ソフトとの相性は、私の方でも少し疑いましたがどう潰していこうか悩んでいるところです。 時間を見つけて検証を行おうと思います。 ありがとうございました。