【讨论】关于跨平台
来源:互联网 发布:小米wifi破解软件 编辑:程序博客网 时间:2024/05/21 15:41
跨平台是软件的一个重要指标。一般程序可分为平台无关和平台相关两部分,平台相关部分主要涉及外围设备(如串口、键盘、鼠标、LCD等)和操作系统API(如定时器、互斥锁、文件系统操作、线程操作等)。
除了程序本身的跨平台需求外,还有种应用是对目标机的模拟,例如在PC上模拟一些嵌入式平台的应用,一来可以方便用户体验产品功能,二来Windows友好的开发环境,程序调试很方便。
所以,可以定义这样一组接口,接口的实现平台相关,由平台无关部分调用。如下所示:
class VArchOper{public://套接字接口void startSocket();void nonBlkSocket( int sock );void closeSocket( int sock );//显存接口int initDspDev( int buf[] );//提供显示属性:屏幕尺寸,色深,显存指针//输入接口//触控接口int getTouchInf( int buf[] );int ctrTouchInf( int cmd, void *arg );//键盘接口int getKeybdInf( int buf[] );//定时器接口int initTimer( void (*hd)( int ) );int loadClock( int clock[] );//时钟函数(年月日时分秒)int loadSysTime( int tm[] );//系统时间(秒,微妙)int cvtSysTm2Clock( const int sysTm[], int clock[] );//互斥操作void initMutex( void *m );void delMutex( void *m );void lockMutex( void *m );void unlockMutex( void *m );//文件夹操作void loadCurDir( char name[], int len );int createDir( const char *name );void * openDir( const char *name );int isFolder( void *dir, const char *baseDir );void * listDir( void *dir, char name[] );void closeDir( void *dir );//文件操作void loadFileInf( const char *name, int inf[] );void rmFile( const char *name );//延时操作void sleepMs( int ms);//线程接口int createThread( void *(*start_routine)(void *), void * arg, int IsDetach = FALSE );//......其他接口.....};
这组接口应该尽可能小,只包含平台相关部分。不断扩充后,可以作为小范围的标准接口,其他程序则可以省去平台相关部分的编写工作。
- 【讨论】关于跨平台
- 关于跨域访问的讨论
- union和struct类型大小的跨平台讨论
- 【知乎】上关于数据规模与大数据平台方面的一个讨论
- 关于跨平台浏览器
- DiabloIII的平台性讨论
- 关于checkpoint的讨论
- 关于checkpoint的讨论
- 关于比赛的讨论
- 关于工作流的讨论
- 关于C的讨论
- 关于时钟的讨论
- 关于单元测试的讨论
- 关于引用的讨论
- 关于EventDispatcher的讨论
- 关于DM9000 的讨论
- 关于Map 的讨论
- 关于引用&的讨论
- 单词游戏
- vector 排序 去重 反向输出
- C++学习笔记 --- 枚举常量
- PowerDesigner 系列 小结
- Perl Class::Accessor 分析
- 【讨论】关于跨平台
- capture不能直接输出pdf
- IUnknown—COM和MFC
- jquery attr()方法
- SAP DB connect
- COM编程入门
- C#连接数据库的新方法(通过web.config配置文件)
- java Integer类的缓存
- 关于Android耳机插拔的问题(ACTION_HEADSET_PLUG )