《COM技术内幕》读书笔记——第5章 动态连接
2012-12-28 15:33
204 查看
前置课程是PE文件结构和DLL动态连接技术,如果你不了解PE文件结构(这在这章不算很重要,但这个是很基本很基本的内容,对理解编译加载原理以及内存结构有很大帮助),请参考PE文件格式官方文档;如果你还没有写过DLL,请先参考《Windows核心编程》第19,20章。
回归正题目,这里要做的是一个COM的组件服务器——使用DLL的形式,所以有别于一般的DLL。需要实现注册,卸载,初始化,创建对象,判断状态这几个函数,列表如下:
注:上面的CMPAPI是我的工程编译头,可以不关注。
导出函数表为:
这部分内容根据书上本章内容的代码整理调试成功后测试通过,附于我的资源里,环境是win7,vs2008sp1。
方法,先编译CMPNT工程,在运行里使用regsvr32.exe dllfullpath来注册,这个注册过程是需要跟踪理解的,我在里面打了不少messagebox,在执行regsvr32命令的时候,弹出第一个窗口的时候把regsvr32进程附加到调试中,就可以清楚的看出注册的过程,调用上面这些函数的先后顺序。对于加深COM的注册原理有重要帮助。对于messagebox,熟悉以后可以根据自己的需要删除少一点。
接下来编译MyChap工程,就可以运用调试过程来观察整个COM的运行过程,我在这个过程学到很多COM的内部原理。
下载连接:http://u.download.csdn.net/upload/success
Any questions, pls contact me.
回归正题目,这里要做的是一个COM的组件服务器——使用DLL的形式,所以有别于一般的DLL。需要实现注册,卸载,初始化,创建对象,判断状态这几个函数,列表如下:
CMPAPI int APIENTRY DllMain(HINSTANCE hModule,DWORD dwReason,LPVOID lpReserved); CMPAPI STDAPI DllCanUnloadNow(); CMPAPI STDAPI DllGetClassObject(const CLSID& clsid,const IID& iid,void** ppv); CMPAPI STDAPI DllRegisterServer(void); CMPAPI STDAPI DllUnregisterServer();
注:上面的CMPAPI是我的工程编译头,可以不关注。
导出函数表为:
; CMPNT.def : Declares the module parameters for the DLL. LIBRARY "CMPNT" EXPORTS ; Explicit exports can go here DllCanUnloadNow @1 PRIVATE DllGetClassObject @2 PRIVATE DllRegisterServer @3 PRIVATE DllUnregisterServer @4 PRIVATE
这部分内容根据书上本章内容的代码整理调试成功后测试通过,附于我的资源里,环境是win7,vs2008sp1。
方法,先编译CMPNT工程,在运行里使用regsvr32.exe dllfullpath来注册,这个注册过程是需要跟踪理解的,我在里面打了不少messagebox,在执行regsvr32命令的时候,弹出第一个窗口的时候把regsvr32进程附加到调试中,就可以清楚的看出注册的过程,调用上面这些函数的先后顺序。对于加深COM的注册原理有重要帮助。对于messagebox,熟悉以后可以根据自己的需要删除少一点。
接下来编译MyChap工程,就可以运用调试过程来观察整个COM的运行过程,我在这个过程学到很多COM的内部原理。
下载连接:http://u.download.csdn.net/upload/success
Any questions, pls contact me.
相关文章推荐
- 动态连接库中的函数,解释后出现问题,求救!!!
- 逆向工程核心原理读书笔记-API钩取之IE浏览器连接控制
- 动态ip怎样实现远程连接计算机?
- 《编写可维护的JavaScript》读书笔记第5章:UI层的松耦合
- thinking in c++读书笔记--类的静态数据成员的定义的连接属性:外部连接属性
- 动态连接数据库的配置问题 ACCESS +SQL 2000
- GridView实现超连接动态数据的查询
- 创建线程消息循环服务于动态连接库
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper安装
- 串讲笔记:动态连接库
- 《机器学习》读书笔记 7 第5章 神经网络 一
- 《图解HTTP》读书笔记(5)第5章与HTTP协作的Web服务器(关键词:HTTP/)
- 用VBScript作连接数据库的动态网页
- 水晶报表动态连接数据库
- 多database数据源动态切换连接的spring 解决方案 Dynamic DataSource Routing
- 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
- Linux下动态共享库 连接和加载路径
- sql server 2005 修改动态端口,连接字符串为:需要改成:IP地址+逗号+端口号才行
- PowerBuilder8.0动态连接SQL Server技巧