我在BlackBerry OS 5.0上开发了一个聊天应用程序,但我的客户希望我将其移植到4.5到5.0及以上的所有平台。 我已经尝试使用预处理程序指令在运行时编译OS兼容的类,但我还没有成功。我怀疑我使用预处理器的方式。所以我在这里举个例子:
//#ifdef JDE_4_6_0_AND_ABOVE
/*
//#endif
//some code
//#ifdef JDE_4_6_0_AND_ABOVE
*/
//#endif
//#ifndef JDE_4_6_0_AND_ABOVE
/*
//#endif
//Alternative of code used above
//#ifndef JDE_4_6_0_AND_ABOVE
*/
//#endif
这是我为代码的特定部分执行此操作的方式。这里的逻辑是如果操作系统版本是4.6及以上,则使用第一个代码...如果操作系统版本低于4.6,则使用第二个代码....
但是预处理器下的代码似乎没有在任何一种情况下编译。
注意:我在代码的开头放了“//#preprocess”,并在我的应用程序描述符xml文件中定义了预处理器,但仍然没有运气。还有其他解决方案来处理BBOS版本之间的兼容性吗?
答案 0 :(得分:6)
您将代码放在语句之外。 ifdef和ifndef打开语句,endif关闭语句。您也可以使用#else,因为您只有两种情况。
//#ifdef JDE_4_6_0_AND_ABOVE
System.out.println("JDE_4_6_0_AND_ABOVE");
//#else
System.out.println("NOT JDE_4_6_0_AND_ABOVE");
//#endif
干杯
雷