UP有分!如何注册程序中所使用的控件? 编程时使用了mscomm、 ms flexgrid和ms form lable三个控件,都是从系统已注册控件中找到的。在使用SetupFactory6。0制作安装程序时,已经用regsrv32注册了这三个控件所对应的ocx或者dll文件。但是不知道为什么在2000中就是无法运行安装后的程序。必须安装office2000和vc6后,程序才能运行。而且把office和vc反安装后,程序也能运行!谁能告诉我,究竟为什么!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能是某个dll的问题。建议查查。 问题出在你是动态创建的控件。ActiveX控件的License有两种:设计时和运行时。如果你在对话框上放置控件,编译时运行时License会自动加到EXE中,所以你分发的时候即使用户机器上没有安装VC也可以运行。而你动态建立控件时没有运行时License,控件无法建立。如果机器上安装了VC,虽然没有运行时License,但控件可以在注册表中找到有关信息,所以也可以工作。微软的解决方法就是;http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q151/8/04.asp&NoWebContent=1 不错,就是这篇文章:http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q151/8/04.asp&NoWebContent=1&NoWebContent=1你其实可以在程序界面中放置一个你用到的控件(虽然你并不会真正的用到它),这样就可以避免你所说的问题了,^_^顺便帮你顶。 我的程序中应该不是动态创建的控件。我所使用的控件都是从工具栏上拖动到对话框上。另外,在一个干净的2000系统中,如果手动注册了那三个文件后,再安装Vc(不安装ActiveX),然后用VC打开工程文件时,可以发现Form Lable和MSCOMM控件都不能初始化,不能在对话框上正确显示,而FlexGrid却可以。这又是为什么呢?而且,用depend工具查看我的程序,也没有显示需要那三个文件啊。究竟是为什么?到底如何解决呢?请大家帮我顶啊! 你进了微软的Dll地狱了!!呵呵 Dll地狱?难度是因为DLL版本的原因?应该不是吧 mscomm、 ms flexgrid和ms form lable三个控件需要其他的支持库,用depend看看吧! 你是说要用Depend查看那三个文件吗?我试试 我在vb中碰到过类似的问题:1、有可能是你做安装包的时候,文件组里的自注册文件没有设置好,每个自注册ocx或dll文件在他的属性里都有标明:selfregister,不能出错的!2、也有可能是缺少相关的dll文件,比如msvcp60.dll,msvcrt.dll等。 可能是作安装包时缺少了某个控件的selfregistry 你是不是只注册了fm20.dll,这个只是英文版的,如果需要中文支持还要再注册fm20chs.dll mscomm32等均有license号,你不仅要注册,还要在注册表中写入一些东东: 问题已解决,的确是maggice所说的那样同时也谢谢所有帮忙解决和up的兄弟,呵呵结贴,给分 1) 如果操作系统是windows2000将MSCOMM32.ocx文件拷入c:\winnt\system32\(2) 如果操作系统是windows2000 在运行中输入 regsvr32 c:\winNT\system32\Mscomm32.ocx(3)regedit(4)找HKEY_CLASSES_ROOT\Licenses,在其中添加主键 4250E830-6AC2-11cf-8ADB-00AA00C00905 其内容为:kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun//当然你也可以用代码来实现上面的步骤了 :-) 求助大神:vc++6.0里Gallery文件夹是空的怎么办 求助 - windows如何枚举所有占用特定盘(如U盘(F:\))的所有句柄和进程? 有关WM_CLOSE的问题 输入输出重定向可以通过内存映射文件实现吗? 调试问题 怎樣實現列表框條目自動被選中? 程序调试时经常遇到的问题,请教! 1000元求助,VC网络编程,要求可以发送和接收数据包。 这很另类的,多数人不会。请高手帮帮忙。能指点一二。 能帮我解释一下CFileDialog类吗? CFileDialog多选的问题 如何实现像VC中工程向导那样,点击下一步到下一个对话框,前面一个不见了,点击上一步又回到上一个对话框?
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q151/8/04.asp&NoWebContent=1
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q151/8/04.asp&NoWebContent=1&NoWebContent=1你其实可以在程序界面中放置一个你用到的控件(虽然你并不会真正的用到它),这样就可以避免你所说的问题了,^_^顺便帮你顶。
另外,在一个干净的2000系统中,如果手动注册了那三个文件后,再安装Vc(不安装ActiveX),然后用VC打开工程文件时,可以发现Form Lable和MSCOMM控件都不能初始化,不能在对话框上正确显示,而FlexGrid却可以。这又是为什么呢?
而且,用depend工具查看我的程序,也没有显示需要那三个文件啊。
究竟是为什么?到底如何解决呢?请大家帮我顶啊!
1、有可能是你做安装包的时候,文件组里的自注册文件没有设置好,每个自注册ocx或dll文件在他的属性里都有标明:selfregister,不能出错的!
2、也有可能是缺少相关的dll文件,比如msvcp60.dll,msvcrt.dll等。
同时也谢谢所有帮忙解决和up的兄弟,呵呵
结贴,给分
(2) 如果操作系统是windows2000 在运行中输入 regsvr32 c:\winNT\system32\Mscomm32.ocx
(3)regedit
(4)找HKEY_CLASSES_ROOT\Licenses,在其中添加主键
4250E830-6AC2-11cf-8ADB-00AA00C00905
其内容为:kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun//当然你也可以用代码来实现上面的步骤了
:-)