我用vc编写程序,用到了这个控件显示图表。然后我将程序打包成setup以后,在一台空白机子上安装运行,发现控件不能创建。我的安装包里面有mschrt20.ocx这个控件,而且也是自动注册的,可是就是不行。
请问高手们,是不是还有其他的文件,请告知!

解决方案 »

  1.   

    用vc的工具depends查看它需要连接的文件
      

  2.   

    你编译的时候是不是选动态连接的,那样的话在空白机上就缺少了DLL
      

  3.   

    我试了depends这个工具,不管用,关联的文件都是系统本身有的文件。"你编译的时候是不是选动态连接的,那样的话在空白机上就缺少了DLL"这句话什么意思,可以解释一下吗?
      

  4.   

    "你编译的时候是不是选动态连接的,那样的话在空白机上就缺少了DLL"这句话什么意思,可以解释一下吗?在VC | Project | Setting | General 
    Microsoft Foundation Classes
    选Using MFC in a Static Library试试
      

  5.   

    试一下命令行regsvr32.exe mschrt.ocx,看看是不是能注册成功。如果不行说明还是缺少相关文件。如果行,说明安装包里的自动注册不行,那就想办法把这个命令加到安装包(看一下regsvr32的命令选项有不弹出对话框的)。
      

  6.   

    我都用了,静态的连接,还有自己手动注册等等,就是不管用。我现在发现了这种现象:当mschrt20.ocx这个控件存在系统中,而且是注册过的,如果没有装vc,我的问题就出现了,如果装了vc,我的问题就不出现了,好晕!
    还有我说明一下:我的mschart这个控件不是直接添加到对话框上的,而是以对象的形势创建生成的。如果是在对话框上添加这个控件,只要系统有mschrt20.ocx这个注册的控件,那么程序就会正常显示,但是如果我以对象的形式create一个控件,就不行,怎么回事?请高手解释一下!
    大家可以下载这个程序到没有装vc的机子上运行一下就知道了。http://www.vckbase.com/code/downcode.asp?id=2213
      

  7.   

    有的控件创建的时候需要证书。一般情况下在对话框上添加控件时会自动生成运行时证书,但是手动创建时需要在代码中手动添加证书。你可以单步跟踪MFC的对话框创建代码来查看证书内容。
      

  8.   

    "一般情况下在对话框上添加控件时会自动生成运行时证书,但是手动创建时需要在代码中手动添加证书",不懂呀!证书是什么呀,我用这个函数创建对象
    if(!m_Chart.Create("mschart", WS_CHILD| WS_VISIBLE, rc, this, 10))
    {
    return -1;
    }我跟踪了,只有这个
    BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
    const RECT& rect, CWnd* pParentWnd, UINT nID,
    CFile* pPersist = NULL, BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL)
    { return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
    pPersist, bStorage, bstrLicKey); }CLSID const& GetClsid()
    {
    static CLSID const clsid
    = { 0x3a2b370c, 0xba0a, 0x11d1, { 0xb1, 0x37, 0x0, 0x0, 0xf8, 0x75, 0x3f, 0x5d } };
    return clsid;
    }请指点一下。
      

  9.   

    http://support.microsoft.com/default.aspx?scid=kb;en-us;Q151771
      

  10.   

    今天在网上又寻找了一下,有个地方说了原因:
    http://www.2okok.com/Article/Print.asp?ArticleID=39494
    我用了后面一种方式,虽然我的不是在IE页面使用,结果可以,心情不错^_^
    但是还是要谢谢 jiangsheng(蒋晟.Net) 的帮助,给分!
      

  11.   

    对了,还要谢谢 pinel() 、HelloIvan2005() 和 wshcdr(dd) 的帮助^_^