我将在大约3周后开始游戏,我真的希望游戏至少在另一个平台(Linux,MacOS)上运行,但我的团队认为这是很多工作.我很乐意,但想知道我应该注意哪些东西不会移植到linux(除了特定于Windows的特定API,如DirectXsound)?
我一直在线阅读和Windows"_s"功能sprintf_s
似乎只存在于Windows上; 这是正确的还是在linux上实现的?
不,_s函数未在标准gcc库中实现.(至少,对'sprintf_s'的包含文件进行grepping一点都没有.)
可能值得研究像boost和apr这样的跨平台库来完成一些繁重的工作.
要查找的具体事项的示例:
输入/输出(DirectX/SDL/OpenGL)
Win32/windows.h功能(CreateThread等)
在UI上使用Windows控件
同步原语(关键部分,事件)
文件路径(目录分隔符,根名称)
宽字符实现(Windows上为16位,Linux上为32位)
Linux上没有MFC支持(CString等)