黑莓多操作系统版本兼容性问题

发布于 2024-11-25 08:32:53 字数 621 浏览 1 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

揪着可爱 2024-12-02 08:32:53

您将代码放置在语句之外。 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

干杯

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.

//#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

Cheers

Ray

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文