DLLから関数を呼び出す(VC++) DLLから関数を呼び出すために、次の三つの関数で、実現できます。 1.関数が含まれているDLLをロードして、アクセスするためのハンドルを取得します。 2.関数名或いは、関数番号で、関数のアドレスを取得します。 3.DLLの開放をします。 例:user32.dllから、MessageBoxを呼び出します。 /* int MessageBox( HWND hWnd, // handle of owner window LPCTSTR lpText, // address of text in message box LPCTSTR lpCaption, // address of title of message box UINT uType // style of message box ); */ typedef int (__stdcall* MSBOX_FUNC)(HWND , LPCTSTR , LPCTSTR , UINT); void CTestDlg::OnButton1() { HINSTANCE hinstDLL; MSBOX_FUNC pProc; hinstDLL = LoadLibrary("user32.dll"); if (NULL != hinstDLL) { pProc = (MSBOX_FUNC)GetProcAddress(hinstDLL, "MessageBoxA"); if (NULL != pProc) pProc(m_hWnd, "メッセージボックスを作成、表示、操作しました。 ", "通知", MB_OK); FreeLibrary(hinstDLL); } } |