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