将64位的ocx,在system32目录下注册后,在com组件中,却找不到注册后的控件名称

时间:2021-05-30 03:39:21
如题所示:
操作系统是win7 64位的
ocx 也是64位的,在system32目录下注册后,在COM组件中,找不到注册后的控件名称。
动态生成是可以的

9 个解决方案

#1


用64位的Regsvr来注册com组件

#2


还有就是控件有没有签名。

#3


引用 1 楼 oyljerry 的回复:
用64位的Regsvr来注册com组件

用的是 C:\Windows\System32 目录下的regsvr32.exe

#4


引用 2 楼 oyljerry 的回复:
还有就是控件有没有签名。

我开发ActiveX控件,作为自定义控件使用,没有签名应该也没有影响吧?

#5


在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
    在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
    且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
    在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
    在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64 位 Windows 平台注意点之文件系统重定向  http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平台注意点之注册表重定向  http://www.cnblogs.com/jiake/p/4956218.html

#6


引用 5 楼 zhao4zhong1 的回复:
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
    在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
    且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
    在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
    在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64 位 Windows 平台注意点之文件系统重定向  http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平台注意点之注册表重定向  http://www.cnblogs.com/jiake/p/4956218.html

又贴这一段,是按这个意思放的位置,但VS COM组件中找不到

#7


严重怀疑你的程序不是64位!

#8


引用 7 楼 zhao4zhong1 的回复:
严重怀疑你的程序不是64位!

我再检查一下配置,应该不会错的

#9


真是折腾,原来虽然在工具箱选项中不能显示注册的64位的ocx,但是在插入控件时,却可以看到。

#1


用64位的Regsvr来注册com组件

#2


还有就是控件有没有签名。

#3


引用 1 楼 oyljerry 的回复:
用64位的Regsvr来注册com组件

用的是 C:\Windows\System32 目录下的regsvr32.exe

#4


引用 2 楼 oyljerry 的回复:
还有就是控件有没有签名。

我开发ActiveX控件,作为自定义控件使用,没有签名应该也没有影响吧?

#5


在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
    在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
    且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
    在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
    在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64 位 Windows 平台注意点之文件系统重定向  http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平台注意点之注册表重定向  http://www.cnblogs.com/jiake/p/4956218.html

#6


引用 5 楼 zhao4zhong1 的回复:
在64位Windows下:
64位exe和dll在目录c:\windows\sys tem32目录下;
32位exe和dll在目录c:\windows\sys wow64目录下;
所以要注意:
    在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
    且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
    在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
    在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
64 位 Windows 平台注意点之文件系统重定向  http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平台注意点之注册表重定向  http://www.cnblogs.com/jiake/p/4956218.html

又贴这一段,是按这个意思放的位置,但VS COM组件中找不到

#7


严重怀疑你的程序不是64位!

#8


引用 7 楼 zhao4zhong1 的回复:
严重怀疑你的程序不是64位!

我再检查一下配置,应该不会错的

#9


真是折腾,原来虽然在工具箱选项中不能显示注册的64位的ocx,但是在插入控件时,却可以看到。