私は C++ と Win API の経験がないので、この質問がわかりにくい場合は申し訳ありません。MessageBox
たとえば、いくつかのコンポーネントを作成するDLLがあります。ビジュアル スタイルを有効にするプラグマ コメントを追加しましたが、機能しません (そして、この回答からわかるように、Internet Explorer ツールバーのコンボボックスの Windows 7 スタイル、どのように?
DLL コード (エクスポートなどは省略):
#include "stdafx.h"
#include "my-dll.h"
#include <Windows.h>
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
MYDLL_API int fnmydll(void)
{
MessageBox(NULL, L"Message", NULL, 0);
return 42;
}
次に、アプリからこの dll 関数を呼び出します。
#include <iostream>
#include <Windows.h>
#include "my-dll.h"
int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
fnmydll();
return 0;
}
メッセージ ボックスはありますが、ビジュアル スタイルはありません。私が理解している限り、dll が呼び出されたときにコンテキストをアクティブにする必要がありますが、MSDN にはその方法の例がありません。そのような例を教えてください、または少なくとも何が起こっているのかをより詳細に説明していただけますか? BOOL GetCurrentActCtx(_Out_ HANDLE *lphActCtx);
関数がポインタを受け取るのに、何らかの型ACTCTX
の署名を持っている理由さえ理解できないからです。HANDLE