我有一个正在开发的C ++应用程序。我想发布一个免费版本和付费版本,生产版本在现有免费版本之上添加功能。
根据发布类型编译功能的最佳方法是什么?理想情况下,我会将标志传递给CMake,因此在构建二进制文件时,它还会包含我在生产版本中需要的任何代码。
答案 0 :(得分:3)
你自己回答了你的问题:)将标志传递给你的编译器,并在你的代码中将功能传递给:
#ifdef YOUR_FLAG
//your extra logic
#elif
//in case YOUR_FLAG is not defined
#endif
我在我开发的游戏中使用了完全相同的方法 - 在免费版本广告中启用,在付费版本中,代码被预处理器排除。
此外,您可以使用运行时检查,以防它更适合某些特定任务,但正如在问题的评论中提到的那样 - 代码就在那里并且篡改内存(翻转您的标志)将有可能获得访问权限限制性特征。
答案 1 :(得分:0)
您将它们添加为许可插件。
那是: