我在做安装时,有时需要输入IP地址,于是我将IP控件加到对话框上,但当安装程序运行时,每次一显示该对话框时,就会报错。难道就不能用这个控件吗?但我看到别人却能用,这是为什么?

解决方案 »

  1.   

    我用的版本是InstallShield 6.2
      

  2.   

    可能是你用的控件可能是需要LICENSE的ActiveX控件,限制开发者使用发布.你看看它是随哪个应用程序来的,就在客户机上把那个应用程序装一遍好了.
    如果你不确信是什么问题,可以在你的计算机上以DEBUG方式(源码方式)来运行你的程序,看看出错信息,如果是控件的问题,可以在输出的出错信息里找到该控件的clsid或iid串.
      

  3.   

    我用VC6编辑对话框资源。
    在我开发非InstallShield程序时,IP Address控件没有出现这种情况。我用DEBUG方式调试安装程序时,出现的情况是这样的:当执行到
         
          nId = WaitOnDialog("MyDlg")时,nId返回了-1,此时
          SdError( -1, MyDlg" )显示出错信息为:      In function 'myfun':
          Unable to Create dialog用什么方式能看到你所说的clsid和iid串?
      

  4.   

    SdError( -1, "MyDlg" )
      :)
      

  5.   

    在动态连接库的DLLMain中调用初始化该IP控件的一个函数,好像是CoInitliazeEx之类的函数,具体查询MSDN中有关IP ADDRESS COMMON CONTROL的帮助
      

  6.   

    在我的出错信息里找不到IP控件的CLSID或IID串,是不是意味着并不是控件本身的错呢?
      

  7.   

    记得好象是在输出窗口里,出错提示是无法初始化对话框。我碰到过一次用FM20.DLL出错的。
      

  8.   

    char classname[30] = "SysIPAddress32";
    WNDCLASS wc;
    if( !GetClassInfo( hInst,classname,&wc ) )
    {
    INITCOMMONCONTROLSEX initCtrl;
    initCtrl.dwSize = sizeof(INITCOMMONCONTROLSEX);
    initCtrl.dwICC  = ICC_INTERNET_CLASSES;
    if( !InitCommonControlsEx(&initCtrl) )
    {
    MessageBox(NULL,"initcommoncontrolsex function !","error",MB_OK); }
    }
      

  9.   

    mfc框架下的程序不会有事installshield这号要求any-where  any-run 的东东可是sdk写的阿