CSDN的搜索功能正在维护中没办法查,又着急想知道,所以问一下这个比较弱的问题:我用了一个OCX控件,因为这个OCX是包含在一个安装程序里面的,所以在安装的时候自动会注册,因此,对于用来开发的这个系统,OCX可以正常使用,在程序中用到这个OCX,编译运行通过,然后用Install Shield打包(非常简单的打包,只是把相关文件包含进去)。对于一个没有把该OCX注册的系统,程序的Setup是正常的,但是执行错误,因为用到的OCX没有注册,手动把OCX注册,结果运行正常,该怎么办?在程序中怎么注册?Install Shield有这个功能吗?(我的IS是5.5,比较古老的)在线等

解决方案 »

  1.   

    Install Shield可以将一组文件选择为安装时自注册的
      

  2.   

    用REGSVR32.EXE来注册,输入命令行参数/?,会告诉你使用它注册.ocx控件
      

  3.   

    噢,是vcleaner(我没做大哥已经很久了.......) 大哥,上次程序多谢你帮忙啦,哈哈。IS里有吗?我好像没找到啊,具体是哪啊?用自己改脚本吗?
      

  4.   

    To danyueer; 我是想让程序自动注册的...
      

  5.   

    IS里有个属性是什么self-registered,选yes
      

  6.   

    在程序中手工注册控件的方法:
    //路径名;
    LPCTSTR dllName = "C:\\Windows\\System32\\Macromed\\Flash\\Flash.ocx";
    HINSTANCE hLib = LoadLibrary(dllName);
    if(hLib < (HINSTANCE)HINSTANCE_ERROR)
    {
    printf("不能装载flash.ocx文件\n");
    }
    //获取注册函数DllRegisterServer地址
    FARPROC DllRegisterServer = GetProcAddress(hLib,_T("DllRegisterServer"));
    if(DllRegisterServer != NULL)
    {
    HRESULT regResult = DllRegisterServer();
    ::FreeLibrary(hLib);
    if(regResult == NOERROR)
    printf("注册成功\n");
    else
    printf("注册失败\n");
    }
      

  7.   

    在运行里输入REGSVR32.EXE 后边跟完整路径名
      

  8.   

    To handsomepine:知道这个方法。哈哈,真是有点笨,我第一次的想法就是把OCX放到系统目录,结果感觉这样就不太好找OCX了,忘了也可以放在安装目录下,谢谢,试试看
      

  9.   

    To FlyYang(++X++): 具体在IS的什么地方啊?
      

  10.   

    到 www.evget.com 去找找控件方面的资料
      

  11.   

    谢谢大家,在IS里找到了Self-registered
    To handsomepine:谢谢你,刚学,所以不太清楚如何判断,呵呵,所以先用IS试试先