windows.h在linux中用什么替,Windows下程序向Linux下移植细节 |
您所在的位置:网站首页 › windowsh是什么头文件 › windows.h在linux中用什么替,Windows下程序向Linux下移植细节 |
3.2.程序的移植 进行程序移植的过程中碰到的问题较多,但大都主要集中在文件名大小写、路径分隔符、数据类型等方面。 3.2.1Linux和Windows操作系统API差异 Windows下基于MFC的API、基于消息的API、基于注册表的API等在Linux下都是没有的,由于文件系统的差异,和文件系统相关的API也是不可以移植的。 解决方法:程序中不使用上面所列的不可移植的操作系统API,通过使用开源库如PWLIB或ACE中的可移植的类来实现所需的功能。 如: SYSTEMTIME pTime; GetLocalTime(&pTime);//为windows独有的API sprintf(sTemp,"[%02.2d-%02.2d-%02.2d]%02.2d:%02.2d:%02.2d %s(%d)", pTime.wYear,pTime.wMonth,pTime.wDay, pTime.wHour,pTime.wMinute,pTime.wSecond,file,lineNum); 改为: 使用pwlib的PTime来实现 PTime curTime;//pwlib中可以跨平台使用的时间类 sprintf(sTemp,"[%02.2d-%02.2d-%02.2d]%02.2d:%02.2d:%02.2d %s(%d)", curTime.GetYear(), curTime.GetMonth(), curTime.GetDay(), curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond(), file, lineNum); 3.2.2开发库函数的差异 一些函数在Windows操作系统的VC开发库中有,但Linux下的GLIB C开发库中没有或是名字不一样。 Windows下有而Linux下开发库没有的函数,例如:itoa(int,char*, int)、ltoa(long,char*, int)、ultoa(unsignedlong,char*, int)等。 解决方法1:通过编写相应的代码来实现该函数。 解决方法2:使用Linux下含有类似功能的函数来替换,如itoa()、ltoa()等系列的函数都可以通过sprintf()或snprintf()函数来替换。 替换例子1: ltoa( confHistb.conflong, ca |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |