Win CE開發特性及忠告
第三類函數是Win32函數CompareString()。這個函數類似于第二類函數,但是它允許你指定當地設置(the locale)作為一個參數,而不是使用現有的當地設置(current locale settings)。CompareString()函數允許你選擇性地指定兩個字符串的長度。你可以將第二個參數設置為NORM_IGNORECASE,從而使函數比較字符串時不比較大小寫。
通常,即使不將第二個參數設置為NORM_IGNORECASE,CompareString()函數也不用來區分大小寫。我們經常用wcsncoll()函數來區分大小寫,除非使用當地的字符C(C locale)。所以,在我們的代碼中,不使用CompareString()函數來區分大小寫,而用wcsncoll()函數來區分大小寫
不要使用相對路徑
與Windows NT不一樣,Windows CE沒有當前目錄這個概念,因此,任何路徑只是相對于根目錄而言的。如果你的軟件給文件或目錄使用相對路徑,那么你很可能把它們移到別的地方了。例如,路徑.abc在Windows CE中被當作abc看待。
移走了對calloc()和 time()函數的調用
C運行庫中的calloc()函數不能使用,但是malloc()函數可以代替calloc()函數。并且不要忘記,calloc()函數初始化時分配的內存為零,而malloc()函數不一樣。同樣,time()函數也不能使用,但你可以使用Win32函數GetSystemTime()函數代替time()函數。
經過以上的警告后,你會高興地學習最后令你驚訝的兩點忠告。
不需要改變Win32 輸入/輸出(I/O)文件的調用
Win32的輸入輸出函數,Windows CE也支持。允許你象訪問Win32文件系統那樣訪問對象。CreateFile()函數在Windows CE中不能辯認標志FILE_FLAG_RANDOM_ACCESS,但是這個標志僅用作可選的磁盤訪問,并且不影響函數調用的功能。
不要擔心字節的狀態
當我們把應用程序寫入Windows CE時,有了一個美好的發現,那就是Windows CE的數字數據類型的字節狀態與Intel結構的字節狀態一樣,在所有的處理器上,Windows CE均支持。
幾乎象所有的數據庫引擎一樣,Raima數據庫管理器在數據庫文件中以二進制形式保存數字數據。這就意味一個記錄無論何時寫入數據庫或從數據庫讀出,均被當作一系列的字節來處理,不管它域的內容。只要數據庫文件不要傳給別的任何系統,數字數據的字節狀態問題就解決了。如果數據庫文件被一個來自原始系統且帶有不同字節狀態的處理器訪問,數字數據將被誤解。
無論何時,當你在擁有不同處理器的機器上傳輸文件時,就會出現這個問題。在這個問題上,值得高興的是所有類型的處理器都使用相同的字節狀態。
在使用Windows CE時,這些忠告應該引起你足夠的重視,避免學習時走彎路。
評論