VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 466|回复: 4

vc6activex控件升级问题

[复制链接]
77_avatar_middle
最佳答案
0 
在线会员 发表于 2019-5-7 12:12:01 | 显示全部楼层 |阅读模式
3驿站币
本帖最后由 dblue73 于 2019-5-7 12:12 编辑

最近碰到一个问题:
以前xp上vc6mfc开发的ocx控件在64位win10上用vs2017修改后成功注册。
但在使用该控件上碰到问题,执行时会弹窗“类型不匹配”
比较vc6和vs2017的控件工程,
发现vs2017的_D***和_D***Events相较vc6少了很多定义函数,
且vs2017用的是idl文件,而vc6用的是odl文件。
不知道哪位有了解的。





上一篇:vc matlab 混合编程时候,提示libeng.dll丢失。用regsvr32注册 成功不了,各位大神...
下一篇:shellexecuteex打开外部程序外部程序被UAC拦截怎么处理?
81_avatar_middle
最佳答案
3 
online_supermod 发表于 2019-5-7 12:41:21 | 显示全部楼层
VS2017 当前的工程编码用的是什么?跟 VC6 的一致吗?
多字节还是Unicode
77_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-5-8 10:45:35 | 显示全部楼层
是多字节字符集,和vc6的相同。
也是原来xp上vc6程序进行升级的。
原来的程序和控件都是在xp上用vc6开发的,现在必须升级到64位系统的win7或win10,用vs2017开发。
昨天又找出最原始的控件代码,在64位win10上用vs2017重新修改后,好像和vc6上一样了,可能中间处理控件代码时有些问题。

可问题又来了,先编译了release的x86版本控件,放到syswow64里用syswow64的cmd注册好控件。
开一个测试工程,从项目-添加新项-visual c++-mfc-ActiveX控件中的MFC类,找到注册表里的控件,插入新类,
发现只有原控件接口内的方法可以看到,属性都看不到了,关键时没有了属性对应的set/get方法。
而xp上用测试程序用类似方法添加类之后,控件接口的属性都转换为set/get方法了。
需要用到控件接口的属性转换的set/get方法,请教该怎样处理好。
77_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-5-8 10:53:49 | 显示全部楼层
VS2017 当前的工程编码跟 VC6 的一致,都是多字节

昨天找出原始控件代码,重新编译后,又看到了odl文件,可能中间处理控件代码时出了问题。
但升级后的控件(release/x86)在syswow64目录下注册后,用vs2017测试时找不到控件接口内属性转换的对应set/get方法,xp上vc6测试时则都是有的。

请教怎样得到控件接口内属性转换的对应set/get方法。
77_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-5-8 10:55:13 | 显示全部楼层
Debug 发表于 2019-5-7 12:41
VS2017 当前的工程编码用的是什么?跟 VC6 的一致吗?
多字节还是Unicode

VS2017 当前的工程编码跟 VC6 的一致,都是多字节

昨天找出原始控件代码,重新编译后,又看到了odl文件,可能中间处理控件代码时出了问题。
但升级后的控件(release/x86)在syswow64目录下注册后,用vs2017测试时找不到控件接口内属性转换的对应set/get方法,xp上vc6测试时则都是有的。

请教怎样得到控件接口内属性转换的对应set/get方法。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-11-29 01:01

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表