一.com是一个更好的c++ 【程序编程相关:显示SOCKET错误信息】
【推荐阅读:VC++实现拨号上网程序详解】
don box 说"com is love".com 的全称是 component object model 组件对象模型. 【扩展信息:『21天精通C++』第三周学习笔记(3-】1.com 是什么2.从 c++ 到 dll 再到 com2.1 c++如某一软件厂商发布一个类库(cmath四则运算),此时类库的可执行代码将成为客户应用中不可分割的一部分.假设此类库的所产生的机器码在目标可执行文件中占有4mb的空间.当三个应用程序都使用cmath库时,那么每个可执行文件都包含4mb的类库代码(见图1.1).当三个应用程序共同运行时,他们将会占用12mb的虚拟内存.问题还远不于此.一旦类库厂商发现cmath类库有一个缺陷后,发布一个新的类库,此时需要要求所有运用此类库的应用程序.此外别无他法了.图1.1 cmath 的三个客户2.2 dll解决上面问题的一个技术是将cmath类做成动态链接库(dll ,dynamic link library)的形式封装起来 .在使用这项技术的时候,cmath的所有方法都将被加到 cmath dll 的引出表(export list)中,而且链接器将会产生一个引入库(import library).这个库暴露了cmath的方法成员的符号 .当客户链接引入库时,有一些存根会被引入到可执行文件中,它在运行时通知装载器动态装载 cmath dll.当 cmath 位于dll中时,他的运行模型见图1.2图1.2 cmath引入库2.3 com"简单地把c++类定义从dll中引出来"这种方案并不能提供合理的二进制组件结构.因为c++类那既是接口也是实现.这里需要把接口从实现中分离出来才能提供二进制组件结构.此时需要有二个c++类,一个作为接口类另一个作为实现类.让我们开始com之旅吧. 二.com基础1. com基本知识1.1 返回值hresultcom要求所有的方法都会返回一个hresult类型的错误号.hresult 其实就一个类型定义: ... 下一页