ActiveX控件在自己电脑上编译后程序可以运行,到其他机器上有问题!

时间:2021-02-24 21:04:40
最近在写一个条码打印,需用到一个条码的OCX控件,我自己电脑上安装了这个OCX控件后,可以正常使用这个ActiveX控件,并且编译生成成功,也能正常使用。

然后拿到其他没有安装OCX控件的电脑上直接运行DEBUG则报错!只有安装了OCX控件才能正常打开程序

我想要问的是,一个OCX控件必须在每一台需要使用这个程序(编程时使用了这个OCX)的机器上安装才能正常使用吗?

8 个解决方案

#1


OCX是插件,需要安装,可以做一个安装程序,在安装过程中装上OCX

#2


DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

#3


ocx控件使用之前都得注册,有的还的要有许可证

#4


引用 2 楼 homesos 的回复:
DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

 是注册OCX控件吗?

#5


regsvr32  "c:\你的插件.ocx"

#6


引用 4 楼 puga2006 的回复:
Quote: 引用 2 楼 homesos 的回复:

DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

 是注册OCX控件吗?


是注册。
可以在命令行cmd下,regsvr32 "c:\全路径\ocxname.ocx",XP下这样就行了,WIN7下需要以管理员运行的cmd才可以,否则会报错。
所以建议你写个程序来注册,只要以管理员运行你的程序,就行了会方便些,像下面这样:

//cstrDirectory 是指目录,如:d:\Program Files (x86)\ocxdemo
ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/C regsvr32 /u /s \"") + cstrDirectory + _T("\\ocxname.ocx\""), NULL, SW_HIDE);

#7


引用 6 楼 homesos 的回复:
Quote: 引用 4 楼 puga2006 的回复:

Quote: 引用 2 楼 homesos 的回复:

DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

 是注册OCX控件吗?


是注册。
可以在命令行cmd下,regsvr32 "c:\全路径\ocxname.ocx",XP下这样就行了,WIN7下需要以管理员运行的cmd才可以,否则会报错。
所以建议你写个程序来注册,只要以管理员运行你的程序,就行了会方便些,像下面这样:

//cstrDirectory 是指目录,如:d:\Program Files (x86)\ocxdemo
ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/C regsvr32 /u /s \"") + cstrDirectory + _T("\\ocxname.ocx\""), NULL, SW_HIDE);

++

#1


OCX是插件,需要安装,可以做一个安装程序,在安装过程中装上OCX

#2


DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

#3


ocx控件使用之前都得注册,有的还的要有许可证

#4


引用 2 楼 homesos 的回复:
DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

 是注册OCX控件吗?

#5


regsvr32  "c:\你的插件.ocx"

#6


引用 4 楼 puga2006 的回复:
Quote: 引用 2 楼 homesos 的回复:

DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

 是注册OCX控件吗?


是注册。
可以在命令行cmd下,regsvr32 "c:\全路径\ocxname.ocx",XP下这样就行了,WIN7下需要以管理员运行的cmd才可以,否则会报错。
所以建议你写个程序来注册,只要以管理员运行你的程序,就行了会方便些,像下面这样:

//cstrDirectory 是指目录,如:d:\Program Files (x86)\ocxdemo
ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/C regsvr32 /u /s \"") + cstrDirectory + _T("\\ocxname.ocx\""), NULL, SW_HIDE);

#7


引用 6 楼 homesos 的回复:
Quote: 引用 4 楼 puga2006 的回复:

Quote: 引用 2 楼 homesos 的回复:

DEBUG的OCX需要环境才能运行。

要编码成Release的版本,到其他电脑上,regsvr32注册一下(可以用代码注册),才可以使用。

 是注册OCX控件吗?


是注册。
可以在命令行cmd下,regsvr32 "c:\全路径\ocxname.ocx",XP下这样就行了,WIN7下需要以管理员运行的cmd才可以,否则会报错。
所以建议你写个程序来注册,只要以管理员运行你的程序,就行了会方便些,像下面这样:

//cstrDirectory 是指目录,如:d:\Program Files (x86)\ocxdemo
ShellExecute(NULL, _T("open"), _T("cmd.exe"), _T("/C regsvr32 /u /s \"") + cstrDirectory + _T("\\ocxname.ocx\""), NULL, SW_HIDE);

++

#8