不用regsvr32.exe,如何在BCB程序中直接注册.ocx ? 
以前记得有源码的,几年不搞BCB了,现找不到了, 
用LoadLibrary()装入.ocx后,执行一下它自带的 
注册函数就可以了,嗨,全忘了. 
好像是一个什么什么注册函数
求助 

解决方案 »

  1.   

    LPSTR lpOcxFile = "C:\\ccrun\\123.ocx";
    HINSTANCE hLib = LoadLibrary(lpOcxFile);
    if(hLib == NULL)
    {
        MessageBox(0, "不能载入OCX文件!", "结果", MB_OK);
        return;
    }
    // 获取注册函数DllRegisterServer地址
    FARPROC lpDllEntryPoint;
    lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
    // 调用注册函数DllRegisterServer
    if(lpDllEntryPoint != NULL)
    {
        if(FAILED((*lpDllEntryPoint)()))
        {
            MessageBox(0, "调用DllRegisterServer失败!", "结果", MB_OK);
            FreeLibrary(hLib);
            return;
        };
        MessageBox(0, "注册成功", "结果", MB_OK);
    }
    else
        MessageBox(0, "调用DllRegisterServer失败!", "结果", MB_OK);FreeLibrary(hLib);
      

  2.   

    HMODULE hdll = LoadLibrary(L"yours.dll");
      if (hdll)
      {
      FARPROC regsrv = (FARPROC )GetProcAddress(hdll, "DllRegisterServer");
      if (regsrv)
      {
      HRESULT hr = regsrv();
      if (FAILED(hr))
      {
      MessageBox(0, L"error", L"error", 0);
      }
      else
      {
      MessageBox(0, L"OK", L"good", 0);
      }
      }
      }