CC++跨平台编码教程(概论).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C/C++跨平台编码概论1整理ppt 关于预编译宏#pragmaWindowsWindows使用的#pragma once来防止头文件重复引用Windows/Linux在跨平台的代码中,我们使用#ifndef … #define … #endif宏来实现这个功能2整理ppt #includeWindowsWindows中的#include中可以使用“\”,而且路径名称大小写并无区别。例如下面的写法是等效的:#include “..\\ACE.h”#include “../ACE.h”#include “..\\ace.h”Windows/Linux跨平台的代码中,#include中只能使用“/”(同网址中使用的相同),而且路径名、文件名都是大小写敏感的:#include “..\\ACE.h”(错误 )#include “ACE.h”与#include ”ace.h”不等效3整理ppt 开发工具WindowsWindows中我们通常都使用Visual Studio系列的开发工具来开发程序代码Windows/Linux跨平台的代码也可以使用Visual Studio系列的开发工具来开发,这与Windows程序一样。不同的是我们并不使用MS提供的SDK(比如MFC),而是使用C++标准库(VC已支持)和一些支出跨平台的SDK(比如ACE)提供的库4整理ppt 字符串处理WindowsWindows中,我们使用CString来处理字符串。Windows/Linux跨平台代码中,我们使用C++标准库的std::string来处理字符串,这个类对应的头文件是string。C++标准库还提供了流操作来处理字符串,比如std::stringstream,这个类对应的头文件是sstream。5整理ppt 多语言处理MVC原则MVC将系统分成了原始数据层,控制/映射层和视图层。在这三个层次中,只有原始数据层和视图层才可以处理多语言的问题,控制/映射层不应该介入此问题。I/O处及时处理原则当我们需要进行字符集转换时,请在I/O附近就完成这一功能。所谓的I/O附近是指跨越模块、系统、文件读写操作等边界的附近。这样做可以让模块内部、系统内部的其它代码免于字符串转换的负担,简化系统维护的难度和定位问题的难度。 无论是否要跨平台,在处理文字的时候,我们都会遇到多种字符集的问题。 这里我们提供两条原则来解决这一问题:6整理ppt 基本变量类型WindowsWindows下,我们使用的是MS提供的一套变量类型,比如DWORD,WORD…Windows/Linux跨平台方式下,我们使用的是支持跨平台的SDK提供的变量类型。以ACE SDK为例,我们使用的变量类型是ACE_UINT8,ACE_UINT32…7整理ppt 指针32位系统在32位系统中,有时我们需要将指针转换成整形变量。比如将指针用作map的key。如果我们要使用整形变量保存指针,使用int或long就行了。32位/64位系统在跨平台时,我们使用typedef来 解决这个问题。比如在基于ACE SDK的开发中,我 使用了如下方法:#ifndef _ACE_POINTER_KEY_TYPE_#define _ACE_POINTER_KEY_TYPE_#ifndef ACE_WIN64typedef ACE_UINT32 ACE_PointerKey;// For 32 bits OS.#elsetypedef ACE_UINT64 ACE_PointerKey;// For 64 bits OS.#endif#endif// _ACE_POINTER_KEY_TYPE_8整理ppt listWindowsWindows中,我们使用MS提供的CList类及其子类。Windows/Linux在跨平台时,我们使用的是C++标准库提供的std::list类。9整理ppt mapWindowsWindows中我们使用MS提供的CMap类及其子类。其实MS的CMap类严格意义上说只能算是一个哈希表,算不上树结构。Windows/Linux在跨平台时,我们使用C++标准库提供的std::map类。10整理ppt 线程WindowsWindows中,MS提供了CWinThread和CThread两个类来创建线程Windows/Linux在跨平台时,由于线程、互斥锁、信号都是与OS相关的,所以我们只能使用支持跨平台的SDK提供的类库。比如在ACE中,我们可以使用ACE_Thread::spawn来创建线程。11整理ppt 互斥锁WindowsWindows中,MS提供了CCritialSection,CMutex等互斥锁。Windows/Linux在跨平台时,由于线程、互斥

文档评论(0)

红飞 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档