typedef HRESULT (WINAPI * FREG)(); TCHAR szWorkPath[ MAX_PATH ]; ::GetCurrentDirectory( sizeof(szWorkPath), szWorkPath ); // 保存當前進程的工作目錄 ::SetCurrentDirectory( 組件目錄 ); // 切換到組件的目錄 HMODULE hDLL = ::LoadLibrary( 組件文件名 ); // 動態裝載組件 if(hDLL) { // 取得註冊函數指針 FREG lpfunc = (FREG)::GetProcAddress( hDLL, _T("DllRegisterServer") ); // 如果是反註冊,可以取得"DllUnregisterServer"函數指針 if ( lpfunc ) lpfunc(); // 執行註冊。這裏爲了簡單,沒有判斷返回值 ::FreeLibrary(hDLL); } ::SetCurrentDirectory(szWorkPath); // 切換回原先的進程工作目錄