LoadTypeLibEx
2016-04-18 20:40
176 查看
今天中午用LoadTypeLibEx时,总是编译不过。
让老师看了之后,修改后编译过了。
很纳闷,回来看了一下,msdn写错了…
msdn上CE版本写的是错的,PC版本写的是对的…
看来还不能乱看CE版本的帮助.
![](https://img-blog.csdn.net/20160418200712929)
![](https://img-blog.csdn.net/20160418200728005)
编译过了, LoadTypeLibEx 失败,有可能注册信息不全。
这个COMDLL是手工生成的, 不是用向导生成的。
等用向导生成COMDLL之后,再试试能否用LoadTypeLibEx或LoadTypeLib取到COMDLL中的类型库信息并保存成文件.
![](https://img-blog.csdn.net/20160418204001375)
![](https://img-blog.csdn.net/20160419131728300)
![](https://img-blog.csdn.net/20160419131747945)
![](https://img-blog.csdn.net/20160419131935354)
![](https://img-blog.csdn.net/20160419131820243)
![](https://img-blog.csdn.net/20160419132011957)
试验过了,只有IDL文件可以保存, .h, .c保存不了.
新建一个ATL工程,将IDL文件加进去编译, 得到.tlb文件.
如果COMDLL提供单接口, 用CLSID和IID得到虚表指针后,直接调用虚表中接口函数指针.
让老师看了之后,修改后编译过了。
很纳闷,回来看了一下,msdn写错了…
msdn上CE版本写的是错的,PC版本写的是对的…
看来还不能乱看CE版本的帮助.
编译过了, LoadTypeLibEx 失败,有可能注册信息不全。
这个COMDLL是手工生成的, 不是用向导生成的。
等用向导生成COMDLL之后,再试试能否用LoadTypeLibEx或LoadTypeLib取到COMDLL中的类型库信息并保存成文件.
工具党得到.tlb的方法
前提: COMDLL被正常注册后,可以正常使用.找到COMDLL全路径名称,用OleViewer查看类型库
现在可以看到类型库和接口定义了
保存IDL到本地
试验过了,只有IDL文件可以保存, .h, .c保存不了.
得到.tlb文件
用midl.exe直接编译.idl文件, 得到.tlb文件新建一个ATL工程,将IDL文件加进去编译, 得到.tlb文件.
调用COM接口
如果COMDLL提供双接口,用IDispatch来执行invoke如果COMDLL提供单接口, 用CLSID和IID得到虚表指针后,直接调用虚表中接口函数指针.
相关文章推荐
- spoj 16891 Character Patterns (Act 8)
- java内存区域与内存溢出异常
- 块级元素和内联元素区别
- android studio 签名并打包
- unity性能分析
- Messenger的基本用法(本质是跨APP的绑定服务)
- RC4加密算法的原理及实现
- Android布局之FrameLayout
- #ifndef 与 #program once 的区别
- 数据库系统概念学习04-数据模型
- LeetCode 第 231 题 (Power of Two)
- 编辑距离(动规例题)
- LeetCode 第 231 题 (Power of Two)
- 第八周上机实践项目——项目2-用对象数组操作长方柱类
- [杂记]国内某两家IT公司面试经验
- 匿名内部类
- 理解java异常处理机制
- ios 手势
- Name [spring.liveBeansView.mbeanDomain] is not bound in this Context错误
- java 使用DOM4J对XML文件进行增删改查操作