在前面的文章中我们曾向大家介绍了Linux系统下的socketaddress结构,不知道大家觉得怎么样呢!现在我们要向大家介绍的就是把VC程序移到Linux系统需要注意什么!下面大家还是跟着我们txwb网吧联盟的网吧系统栏目一起去看看吧!
文件名方面,ext2文件系统对文件名是大小写是敏感的,在VC环境下,由IDE自动生成的#include语句,其中的文件名全部是小写的。大家一定要严格使用大小写敏感的文件名格式,避免在LINUX下编译时出现找不到头文件的错误。
其次千万不要使用VC独有的数据类型,比如__int16,__int32和__int64等等,因为你无法保证其它的编译器能否支持它们。还有一个就是,我们经常在VC中使用WORD,DWORD,INT,UINT这样的扩展数据类型,不直接使用编译器的数据类型有助于提高在不同平台之间的可移植性。其实只需将windows.h和basetypes.h中对这些数据进行定义的语句复制到一个头文件中,再在linux下包括进来就行了。
关键字的话是比较好处理的东西,比如__asm,凡是VC中带两个下划线的关键字都是VC独有的。尽量不用它们,如果实在无法避免,就用#ifdef和#endif为LINUX和WINDOWS编写两个版本。
关于MAKEFILE的编写,大家可以先用VC导出一个makefile,然后对其进行修改,但我倾向于从中拷贝出一段来生成GCC的makefile,比起手工编写要快许多。
关于程序设计结构的话绝对是移植过程中问题最大的一部分。应用程序难免要用到操作系统的服务,当我们使用到多进/线程,管道,或者对WINDOWS图形界面的程序进行移植的时候,这个问题就变得突出了。我们应当从设计上就为程序的移植打好基础。
大家如果想要解决这个问题首先必须搞清楚应用程序的逻辑模块。对于这个模块必须使用标准的C/C++进行编写。同时将应用程序使用的线程数最小化,线程越多越难移植。将输入输出模块独立出来。最后划分出控制模块,这个模块与用户进行交互。
把VC程序移到Linux系统需要注意的地方我们就说完了,大家如果还有什么想知道的地方可以去本站的网吧系统栏目去查找,如果找不到相关内容,可以留言一起讨论,当然如果大家有什么好的资料也可以和我们一起分享哦!
本文来源:网络整理 作者:佚名