win32アプリケーションのHINSTANCEはWinMainに渡されますが、現在のHINSTANCEを決定する他の方法はありますか(わからない場合は、win32プログラミングは初めてです!)?ライブラリ内にウィンドウを作成する必要があります(ライブラリはクロスプラットフォームであるため)。idはそれを渡す必要がないことを好みます。
65498 次
4 に答える
97
メモリが機能する場合GetModuleHandle(NULL);
は、インスタンスハンドルを返します。
于 2009-11-17T16:33:24.400 に答える
24
__ImageBaseは、特にライブラリの場合、あなたの友達です。
リンクされたブログ投稿(R. Chenによるものですが、Brian Bondyによってリンクされたものと同じ投稿ではありません)は読む価値があることに注意してください(コメントを含む!)
于 2009-11-17T16:36:21.160 に答える
8
MFCを使用している場合は、AfxGetInstanceHandleを使用できます。
MFCを使用していない場合は、次を使用できます。GetWindowLong(hWnd、GWL_HINSTANCE)
于 2009-11-17T16:20:20.870 に答える
0
関数AfxGetStaticModuleState()がそのトリックを実行します。dll内で呼び出すと、関数はdllにハンドルを返し、exe内で呼び出すと、実行可能ファイルにハンドルを返します。
DWORD size;
TCHAR fileName [MAX_PATH];
HMODULE hModule = AfxGetStaticModuleState()->m_hCurrentInstanceHandle;
::GetModuleFileName (hModule, fileName, size);
于 2013-04-16T13:48:32.040 に答える