2016-09-03 1 views
0

新しいスタイルのUIを表示するには、Windows Common Controls v6.0を使用する必要があります。 私はマニフェストの依存関係によってそれを行うことができると知っていますが、マニフェスト(またはソースコード...私のアプリケーションではありませんが、私は必要なCommCtrlsとプロセスにアタッチされるDLLを持っていますそのDLLから呼び出される)そのプロセスのWindows Common Controlsバージョンを指定するにはどうすればよいですか?それを行うためのAPIやその他のAPIはありますか? Windows共通コントロール(特定のバージョンを使用)

+0

なぜあなたはマニフェストへのアクセス権を持っていないでしょうか?実際にマニフェストにアクセスできない場合は、なぜAPIを使用してそれを実行できると思いますか? (マニフェストにアクセスできないということは、あなたが変更しようとしている他の誰かのアプリだということを意味しています。また、別のバージョンのComCtrlsがすでにロードされている場合は、アプリの実行中に置き換えることはできません)。コードでそれを行う方法ですが、単純にマニフェストを追加するよりもはるかに多くの作業です。 –

+3

はいできます。隔離意識を調べる。あなたのDLLはこれでも動作するためにはマニフェストリソースが必要ですが、そうでなければホストプログラムとは独立して存在します。 [詳細情報](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649781(v = vs.85).aspx#extensions) – andlabs

+0

はい@Kenはこれを間違っています。マニフェストリソースとアクティベーションコンテキストが必要です。 –

答えて

-2

があなたのDLLでこれを試してみてください[ところで、私はC++ & VS2015使用しています]:

#if defined _M_IX86 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#elif defined _M_IA64 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#elif defined _M_X64 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#else 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#endif
+0

マニフェストを追加するには不十分です。いずれにしても、マニフェストをリソースとしてリンクするのは、おそらくより一般的です。それ以外に何が必要ですか?そして、なぜ尋問者はこの不十分な答えを受け入れましたか? –

+0

これは彼の問題を解決したためですか?彼はそのプロセスにdllを注入できると言いました。そのため、非常に遅くロードするDLLでこれを実行すると問題が解決します。 – iFarbod

+0

いいえ、それはありません。アイソレーションとアクティベーションのコンテキストについて知っていますか? –

関連する問題