2009年6月30日火曜日

Windows7ネイティブアプリ

「Windows7はそのアプリケーションに埋め込まれているアプリケーションマニフェスト内にWindows7対応が明記されていない限り下位互換性を保つ為にWindowsVsita互換モードでそのアプリを起動する」
らしい。という事でアプリをWin7ネイティブで動かす為の方法。

なおネイティブで動いて得られるメリットは
■Win7&2008R2: アプリケーション マニフェストに書いてあった。
しかし具体的な際が解らんかったので調べてみた。
・・・がムズイ。
もし解る人いたらアドバイスください。


■RPC Default Thread Pool
ネイティブ: RPC が NT スレッドプールを使う
互換: RPC がプライベートスレッドプールを使う

■DirectDraw Lock
詳細は分からないけど、DirectDrawのLockメソッドは使うと相当遅くなるらしい。それを使わないで処理を巧い事やってくれる様になる。
ネイティブ: DDARW のビデオバッファをロックできない
互換: DDARW のビデオバッファをロックできる

■DirectDraw Bit Block Transfer (Blt) to Primary without Clipping Window
詳細は分からないけど、アプリケーションが動いてるWindowがちらつかなくなって、スムーズに移動出来る様になる。
ネイティブ: クリッピングウィンドウ無しで Blt エリアに描画ができる
互換: Desktop Window Manager に従い、描画する

■GetOverlappedResult API
複数スレッドが非同期処理を行っている際、このメソッドを使用してその状態を追跡した時の動作が異なる。互換モードだと取違いが発生する可能性がある。
ネイティブ: マルチスレッドで使用した場合の競合を解決する
互換: マルチスレッドで使用した場合、タイミングによっては期待した結果が得られない

■Program Compatibility Assistant (PCA)
互換性担保の為の各種プログラムが動作するか否か。動けば当然処理が増えるしアプリケーションも監視されるので処理が遅れる
ネイティブ: PCA を使わない
互換: PCA を使う
コメントを投稿