3
我已經開發的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
這就是我爲代碼的特定部分所做的。這裏的邏輯是先用代碼,如果OS版本是4.6及以上...並使用第二個代碼,如果操作系統版本低於4.6 ....
但在預處理器的代碼似乎並沒有編譯任何一種情況。
注意:我在代碼的開頭放了「//#preprocess」,並在我的應用程序描述符xml文件中定義了預處理程序,但仍然沒有運氣。還有沒有其他解決方案來處理BBOS版本之間的兼容性?
的代碼是沒有格式化之前以及因此它可能已經很難看到,但user856065使用預處理程序添加/刪除註釋塊。 –
@Michael:我看過一些教程網站建議這樣做,而且我也沒有用這種方法運氣。我使用Ray將代碼放入#if塊的方法,對我來說工作正常。 –
Doh!我只是點了點頭。如果原始代碼是原始代碼,而不是隻是cut'n'paste的結果,那麼它不會工作,因爲註釋開啓/關閉程序不能與/#ifdef // #endif(@Michael this可能是一次清理代碼打破了問題:) –