首页
社区
课程
招聘
[分享]解决Win10 1607下VC6运行出错的问题
发表于: 2017-1-2 16:50 5807

[分享]解决Win10 1607下VC6运行出错的问题

2017-1-2 16:50
5807
    更新Win10 1607后,VC6一运行就出错,具体问题反映在这儿:https://social.microsoft.com/Forums/windows/ro-RO/71505d73-a8ee-48d4-967c-c13f6b47bf30/win10vc6?forum=visualcpluszhchs
    元旦刚好有空,顺便看了看,原来问题出在msctfuimanager.dll上,运行VC6后会加载msctfuimanager.dll,msctfuimanager.dll加载dui70.dll执行到DirectUI::Element::_UpdateDesiredSize()+1122行时,调用错误地址出错。但是其他程序不会出现这种问题。

     经测试,如果VC6不加载msctfuimanager.dll,VC6正常运行,不会出现上述问题。
     msctfuimanager.dll的地址放在注册表HKEY_LOCAL_MACHINE下的SOFTWARE\Classes\CLSID\{FD30033D-C508-491E-AE43-0075E46DED83}\InProcServer32主键下。
     解决思路为,在VC6启动时先修改注册表中存放的msctfuimanager.dll地址,阻止VC6加载msctfuimanager.dll,VC6退出时再恢复注册表中msctfuimanager.dll的地址。
     基于achillis改进的FileTool源码,我添加了修改注册表msctfuimanager.dll地址代码。但由于以往手工注册FileTool.dll的方法必须在VC6正常运行之后,所以我写了一个批处理Reg_FileTool.bat自动注册FileTool.dll。
     已知问题:VC6中中文输入不出现选词栏,运行VC后打开的部分其他程序也存在类似问题。
     Win10 1607 64位 专业版下测试通过。
     各位有更好的解决方案的话,欢迎交流一下。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 353
活跃值: (57)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
vbox+winxp.  懒得折腾。
2017-1-2 18:17
0
游客
登录 | 注册 方可回帖
返回
//