还需在注册表中加入此控件的License信息!

解决方案 »

  1.   

    MSFlxGrid.ocx注册应该没有问题!你可以用程序来注册
    //注册ActiveX控件
    static BOOL RegActiveXControl(LPCTSTR pszDllName)
    {
    //初始化OLE.
    if (FAILED(OleInitialize(NULL))) 
    return FALSE;
    //使系统不显示严重的错误句柄信息框,然而,系统向当前进程发送错误信息,用以保证LoadLib fails.
    SetErrorMode(SEM_FAILCRITICALERRORS);    
    //装载ActiveX控件LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
    HINSTANCE hLib = LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);//LoadLibrary(pszDllName);
    if (hLib < (HINSTANCE)HINSTANCE_ERROR)
    {
    OleUninitialize();
    return FALSE;
    }
    //获取注册函数DllRegisterServer地址
    FARPROC lpDllEntryPoint = GetProcAddress(hLib,_T("DllRegisterServer")); 
    //调用注册函数DllRegisterServer
    if(lpDllEntryPoint==NULL)
    return FALSE;
    if(FAILED((*lpDllEntryPoint)()))
    {
    FreeLibrary(hLib);
    OleUninitialize();
    return FALSE;
    }
    FreeLibrary(hLib);
    OleUninitialize();
    return TRUE;
    }
      

  2.   

    prog_st(st),谢谢,受益匪浅!
      

  3.   

    liangs(网络杀手),prog_st(st) (  ) :
      谢先,在请:
         
          是否只有一个文件MSFlxGrid.ocx还不够呀?
      

  4.   

    to "prog_st(st)" 用自己编程注册和用regsvr32.exe有什么区别?
      

  5.   

    BOOL CMakeDataApp::RegisterControls()
    {
    char sPath[MAX_PATH];
    HINSTANCE hLibrary;
    PREGISTERSERVER pRegisterServer;
    HRESULT hResult;

    //GetCurrentDirectory(MAX_PATH,sPath);///不支持中文目录 sprintf(sPath,"c:\\control.ocx");
    hLibrary = LoadLibrary(sPath);
    if(hLibrary == NULL)
    {
    AfxMessageBox("cow,Loading your controls failed!");
    return FALSE;
    }
    else 
    {/// DllRegisterServer is function name;
    pRegisterServer = (PREGISTERSERVER)(GetProcAddress(hLibrary,_T("DllRegisterServer")));
    if(pRegisterServer == NULL)
    {
    AfxMessageBox(_T("cow,your mem address of Moduls failed!"));
    return FALSE;
    }
    else
    {
    hResult = pRegisterServer();
    if(FAILED(hResult))
    {
    AfxMessageBox("error on HRESULT = 0x%x",hResult);
    return FALSE;
    }
    }
    FreeLibrary(hLibrary);
    return TRUE;
    }}关键函数:DllRegisterServer
      

  6.   

    忘了,要先定义:
    typedef HRESULT (STDAPICALLTYPE* PREGISTERSERVER)(void);
      

  7.   

    谢谢各位,因为程序中就使用了一个非WINDOWS标准控件,我也不打算用代码实现,现场安装注册完事。但现在还没有解决,用MSFlxGrid.ocx文件可能还不够,我想在安装Visual Studio时注册的不止MSFlxGrid.ocx。 但是,有的机上用regsvr32.exe注册MSFlxGrid.ocx,报注册成功,但程序不能使用,我看了WINDOWS的报错,肯定是由于不支持控件的原因,各位有何妙计,请指教!!!!