如题

解决方案 »

  1.   

    DllRegisterServer()是用于注册过程的全局引出函数
    给个例子如下
    extern "C" HRESULT_stdcall DllRegisterServer()
    {
      char szModule[1024]
      DWORD dwResult=::GetModuleFileName((HNODULe)g_hModule,szModule,1024);
      if(dwResult==0)
         return SELFREG_E_CLASS;
      return RegisterServer(CLSID_Dictionary,
                            szModule,
                            "DLL.Object",
                            "DLL Component",
                             NULL);
    }
      

  2.   

    注册COM服务器 
    BOOL RegisterDLL( LPCTSTR lpszDLLPath )
    {
      BOOL bRet;
      HMODULE hDLL = LoadLibrary( lpszDLLPath );
      if ( NULL == hDLL )
        return FALSE;
      FARPROC pfn = GetProcAddress( hDLL, "DllRegisterServer" );
      if ( pfn != NULL )
      {
        HRESULT hr = pfn();
        bRet = SUCCEEDED( hr );
      }
      FreeLibrary( hDLL );
      return bRet;
    }代码说明:
    lpszDLLPath:要注册的DLL文件。
    返回值:如注册成功,则返回TRUE,否则返回FALSE。
      

  3.   

    好像应该是:执行 regsvr32 注册时调用吧......
      

  4.   

    可以在安装时让安装软件制作成自动注册的,或者手工regsvr32注册,或者加载DLL取得注册函数地址调用来注册。