黑莓多操作系统版本兼容性问题
我在 BlackBerry OS 5.0 上开发了一个聊天应用程序,但我的客户希望我将其移植到从 4.5 到 5.0 及更高版本的所有平台。 我尝试过使用预处理器指令在运行时编译操作系统兼容的类,但尚未成功。我怀疑我使用预处理器的方式。所以我在这里举一个例子:
//#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 版本之间的兼容性吗?
I have developed a chat application on BlackBerry OS 5.0 but my client wants me to make it portable to all the platforms from 4.5 to 5.0 and above.
I have tried using preprocessor directives to compile the OS compatible classes at run time, but I haven't succeeded in it yet. I doubt the way I'm using preprocessors. so I'm putting up an example here:
//#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
this is the way I'm doing it for the particular part of the code. The logic here is to use first code if OS version is 4.6 and above...and to use the second code if OS version is below 4.6....
But the code under preprocessors doesn't seem to compile in either of the case.
Note: I have put "//#preprocess" at the start of the code and defined the preprocessors in my application descriptor xml file, but still no luck. Also is there any other solution to handling compatibility between BBOS versions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您将代码放置在语句之外。 ifdef 和 ifndef 打开语句,endif 关闭语句。您也可以使用#else,因为您只有两种情况。
干杯
雷
You are placing the code outside the statements. ifdef and ifndef open the statements, endif closes the statement. You can also use #else as you only have two cases.
Cheers
Ray