下载此文档

组件技术讲义------03.pdf


文档分类:IT计算机 | 页数:约90页 举报非法文档有奖
1/ 90
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 90 下载此文档
文档列表 文档介绍
接口与对象接口与对象接口与对象接口与对象接口与对象接口与对象
潘爱民潘爱民
panaiminpanaimin@***@icsticst..pkupku..eduedu..
内容内容
!!组件的接口组件的接口
!!接口接口
!! IDLIDL
!!对象对象
!!产生的背景产生的背景
–– 9393年因为年因为OLEOLE 22的需要而产生的需要而产生
–– OLEOLE 11的缺陷的缺陷
!!又从又从OLEOLE中脱颖而出中脱颖而出
––的优势不限于的优势不限于OLEOLE
––的的
一项重要基础技术一项重要基础技术
!!今天的今天的WindowsWindows平台上,COM无无
处不在处不在
基础基础————几个概念几个概念
!!组件组件
––可独立发布的二进制组件可独立发布的二进制组件
––在在WindowsWindows平台上为平台上为DLLDLL或者或者EXEEXE
!!对象对象
––接口提供服务接口提供服务
––符合符合OOOO中对象的基本概念中对象的基本概念
!!接口接口
––客户与对象之间的协议,对象实客户与对象之间的协议,对象实
接口,客户使用接口,接口接口
如何设计?如何设计?
!!组件组件
––为方便起见,只讨论为方便起见,只讨论WindowsWindows平台平台
上上DLLDLL类型的组件类型的组件
!!对象对象
––如何标识一个对象?对象以什么形式如何标识一个对象?对象以什么形式
存在?客户如何创建对象?存在?客户如何创建对象?
––对象如何暴露接口?一个或是多个?对象如何暴露接口?一个或是多个?
!!接口接口
––要求:跨编译器、跨语言、跨平台要求:跨编译器、跨语言、跨平台
接口接口————从从C++C++入手入手
!!C++C++类:接口与实现的分离类:接口与实现的分离
––接口:类的接口:类的publicpublic部分部分
class CMyString
{
private:
char *m_psz;
public:
CMyString(const char * psz);
~CMyString();
const char*Find(const char *psz);
int Length();
};
接口接口————从从C++C++入手入手((续续))
!!C++C++类的实现类的实现
CMyString::CMyString(const char * psz)
: m_psz( new char[psz ? strlen(psz)+1 :1]) {
if ( psz )
strcpy(m_psz,psz);
else
m_psz[0] = 0;
}
CMyString::~CMyString() {
delete [] m_psz;
}
const char*CMyString::Find(const char *psz) {
return strstr(m_psz,psz);
}
int CMyString::Length() {
return strlen(m_psz);
}
C++C++类的链接类的链接linkinglinking
!!静态链接静态链接
––许多类库的做法许多类库的做法
––编译时刻的链接编译时刻的链接
!!静态链接的缺点静态链接的缺点
––代码重复:多个程序各有自己的代码重复:多个程序各有自己的
代码,需要更多的内存代码,需要更多的内存
––客户程序占据更多的外存空间客户程序占据更多的外存空间
––库代码更新需要重新编译所有的库代码更新需要重新编译所有的
客户程序客户程序
C++C++类的链接类的链接linking(linking(续续))
#ifdef MYSTRINGDLL
#define EXPORTORIMPORT _declspec(dllexport)
#else
#define EXPORTORIMPORT _declspec(dllimport)
#endif
!!动态链接动态链接
class EXPORTORIMPORT CMyString
––运行时刻的链接运行时刻的链接{
private:
!!动态链接形式动态链接形式 char *m_psz;
––编译时刻通过引入库编译时刻通过引入库 public:
CMyString(const char * psz);
––运行时刻完全动态运行时刻完全动态~CMySt

组件技术讲义------03 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数 90
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 中国课件站
  • 文件大小 0 KB
  • 时间2011-11-16
最近更新