“关于__missing_type__ error”

1.error C4772: #import referenced a type from a missing type library; '__missing_type__' used as a placeholdererror                                         
2.C2516: '__missing_type__' : is not a legal base class      
3.error C2146: syntax error : missing ',' before identifier  'Adjustments'

Error如山1,2,3点,源代码从前辈那里拷来的,但是在他电脑上没有问题,在我电脑上就出现了这个奇怪的问题,自己搞了差不多一周,还是未能解决, 最后请教了下前辈总算解决了,这里做个记录,以免忘记,再遇到又不会了。这个问题主要来源于代码中使用了#import “excel.exe”。然后找了好多资料,却还是不是根本解决之法,仍然报错。

本人电脑上当前使用的是Office 2010,但是之前有安装过WPS,Office 2007版。网上有说是版本问题,所以我卸载了Office2010重新安装,或是卸载了安装2007版,也未能解决;弄了挺久,没办法了,请教了前辈,他看了半个小时不到,告诉我问题所在。尴尬!~ ~ ~ 是由于电脑安装了多个版本的Office,或是安装了WPS,在安装时,系统会增加一个注册表项,就算你卸载了之后,这个注册表项依然存在(360不知道能不能清除干净,这个没试过)。

程序导入excel.exe等相关库的时候,会去注册表项查找,然后找到对应的软件安装路径下找到对应的库。但是存在多个注册表项,可能造成查找混乱,找到的是已卸载了版本的注册表,所以就找不到需要的库文件,报这样的错误。(具体过程不清楚,感觉是这个流程,嘿嘿!)

解决方法:

最好只留一个Office 版本或是WPS,但是卸载之后要去删除对应的注册表项。
Win + R运行命令:regedit ; 在弹出的注册表编辑器中找到如下选项:
HKEY_CLASSES_ROOT\TypeLib{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}\2.5
右边会显示选择的项的信息,右键 --> 删除多余的即可。
我的是2.5,具体得视情况而定,可以看下留下来的版本的注册表项是多少,删除多余的就可以了。

由于找到的那个参考资料的链接不见了,所以自己记录一下,以免下次遇到又忘了怎么弄了。
感谢那位博主提供的参考方式,使我得以解决该问题。

S1002 Wheel and UIC 60 Rail profiles are plotted by numerical function based form referenced paper : Rail Profile reference from The Dynamics of a Railway Vehicle on a Disturbed Track page 80. Appendix A 用#import方式引入Word类型库时出现该问题,引入方式: #import "..\\import\\OFFICE12\\MSO.DLL" rename_namespace("Office"),named_guids,exclude("Pages"),rename("RGB","MSORGB"),rename("IAccessible","MSIaccessible") using nam 环境:cpu64,win7 64操作系统,vs2008,office2013,wps2013个人版 1.由于换了一个笔记本,xp->win7,office2010->2013,wps2012->2013,导致原来的代码不能用了 原始代码: #import "lib/wps/2012.8.1.0.2998/kso10.dll" rename("RGB", "KsoRGB") rename I hereby declare that this thesis contains literature survey and original research work by the undersigned, as part of requirements of the Degree of M.Tech. (IT) in Software Engineering. All information in this document has been obtained and presented in accordance with academic rules and ethical conduct. I also declare that, as required by these rules and conduct, I have fully cited and referenced all materials and results that are not original to this work. 工程中需要引用office库,由于机器上装了多个版本的office,时常会卸载、安装office。由此导致工程时而运行顺利、时而出现如标题所示的错误。        简单地说,问题出在如下注册表项:       HKEY_CLASSES_ROOT \ TypeLib \ {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52} \         在Office安 深入了解该类型错误原因,生成的tli文件中出现__misstype__是因为导入dll或者tlb的类型不识别。通过对比公司正常编译生成的tli文件,发现是xmlDocumentPtr指针为识别, 由于编译的是64位并且工程目录下均包括了msxml6.dll和msxml4.dll文件; #import tlb 文件如果存在继承式的依赖,编译时会导致c4772 错误,有时发现即使正确引用了,仍然c4772,此时可以尝试把所有的tlb文件放到工程目录下。也许可以解决。 今天在编程是遇到这样一个编译错误:          “#import   referenced   a   type   from   a   missing   type   library;   '__missing_type__ '   used   as   a   placeholder ”         指向的错误行的内容是这样子的:         “ #import ".