青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

春暖花開
雪化了,花開了,春天來了
posts - 149,comments - 125,trackbacks - 0
WinCE驅動開發(fā)問題精華集錦-4
摘自: http://hi.baidu.com/mcu%5Fspaces/blog/item/528dde03af8c5d733912bb40.html

61、WINCE的socket函數(shù)好像不支持發(fā)送/接收超時?  
是的,最早版本的WINCE支持選項SO_RCVTIMEO、SO_SNDTIMEO,后來卻不支持了。  
  
62、WINCE下如何設置窗口最大化和最小化?  
   WINCE的幫助文檔在介紹API ShowWindow函數(shù)的參數(shù)時指出SW_MAXIMIZE, SW_MINIMIZE, SW_RESTORE, SW_SHOWDEFAULT, SW_SHOWMAXIMIZED, SW_SHOWMINIMIZED, SW_SHOWMINNOACTIVE都不被支持,但實際上并不完全是這樣,具體來說:  
SW_MAXIMIZE             比原來窗口大,但不是最大化  
SW_MINIMIZE             編譯成功,但是不起作用  
SW_SHOWMAXIMIZED     最大化  
SW_SHOWMINIMIZED       編譯出錯  
SW_RESTORE               能恢復  
SW_SHOWDEFAULT         編譯出錯  
SW_SHOWMINNOACTIVE   編譯出錯  
SW_HIDE                   能夠隱藏  
  
63、如何用程序調用控制面板的觸摸屏校對程序?  
   兩種辦法:  
1)、調用API TouchCalibrate函數(shù)  
2)、調用CreateProcess,參數(shù)1為L"\\windows\\ctlpnl.exe",參數(shù)2為L"cplmain.cpl,9"。  
  
64、 如何獲得U盤或者其它類型的存儲器總容量和剩余可用容量?  
調   用API GetStoreInfo得到扇區(qū)數(shù)、每扇區(qū)字節(jié)數(shù),相乘即是總容量。調用API GetDiskFreeSpaceEx得到剩余可用容量。  
  
65、三星2440頭文件定義#define IIC_BASE 0xB1400000 // 54000000,datasheet是54000000,那么怎么轉成0xB1400000?  
     物理地址映射方法分為兩種,一種靜態(tài)映射另一種為動態(tài)映射。在OEMAddressTable中定義了物理地址與虛擬地址的映射關系屬于靜態(tài)映射,用VirtualCopy映射屬于動態(tài)映射,采用哪種辦法都可以。問題中提到的屬于靜態(tài)映射,2440的BSP在map.a文件中定義了IIC控制寄存器的物理起始地址和對應的虛擬地址如下:  
DCD 0x91400000, 0x54000000, 1 ;  
   在OEMAddressTable中定義的虛擬地址范圍在0x8000 0000—0x9FFF FFFF,這部分可緩存,適合內核程序和應用程序使用,同時WINCE內核在0xA000 0000—0xBFFF FFFF中映射了另一份,指向了同樣的物理地址,這部分不可緩存,適合驅動程序使用。三星ARM處理器帶有L1級高速緩存,可緩存會提高執(zhí)行效率。對于特殊的設備寄存器適合映射到不可緩存的虛擬地址。  
   當驅動程序調用VirtualCopy對0xB1400000地址讀寫時,WINCE自動將這個地址減去0x2000 0000,也就是0x91400000,對應的物理地址就是0x54000000,也就是IIC控制寄存器的物理起始地址。  
  
66、基于RAM的注冊表如何保存數(shù)據(jù)?  
   調用API RegCopyFile備份注冊表。調用API RegRestoreFile恢復注冊表,然后調用KernelIoControl熱啟動使恢復生效。  
  
67、如何隱藏和顯示winCE下標準外殼的任務欄?  
HANDLE   hTaskBar = FindWindow(L"HHTaskBar", NULL);  
ShowWindow(hTaskBar, SW_HIDE);  
ShowWindow(hTaskBar, SW_SHOWNORMAL);  
  
68、如果能讓WINCE的IE瀏覽器播放flash動畫?  
   播放flash需要Macromedia Flash Player SDK,參見http://www.adobe.com/products/flashplayer_sdk/。這和real player相似,都需要WINCE平臺的SDK,都需要申請。  
  
69、WINCE下內核模式和用戶模式有什么區(qū)別?  
   為了使讀者能夠詳細了解WINCE的地址映射原理還有兩種模式,在這里我分幾個部分說明:  
1)、WINCE內核nk.exe的任務是管理操作系統(tǒng)核心功能。按照OEMAddressTable的映射要求,所有物理地址都映射到0x80000000以上,所以對于內核程序nk.exe和內核模式下的線程來說,只要訪問0x80000000以上的有效虛擬地址經(jīng)MMU就能夠訪問物理地址,無需再映射是內核模式的一個特點。內核模式的第二個特點是沒有地址訪問限制,內核模式線程可以訪問任何有效虛擬地址,所謂有效虛擬地址是指有實際事物對應。  
2)、用戶模式線程只能訪問0x80000000以下的虛擬地址空間,WINCE6.0之前版本的內核為每個進程劃分32MB的地址空間,在不調用特殊函數(shù)的情況下不能相互訪問,這樣的設計使得WINCE系統(tǒng)更安全、更穩(wěn)定,限制訪問地址是用戶模式的第一個特點。第二個特點就是需要多一層映射,如果線程要訪問物理內存的話需要先映射到0x80000000以上,再經(jīng)MMU訪問物理內存地址。  
   WINCE的線程具有轉移性(參考API GetCallerProcess的說明,有一個很好的例子),當應用程序的線程調用API或者調用驅動程序接口函數(shù)時,該線程會轉移到gwes.exe、device.exe、filesys.exe等進程中執(zhí)行,轉移是由WINCE內核操作的,它會修改線程的上下文,記錄線程的當前進程、調用者進程、擁有者進程三個值。  
3)、如果在定制內核的時候選擇了“Full Kernel Mode”,那么在這個內核上運行的所有線程都處于內核模式,即使調用SetKMode(FALSE)后線程仍然具有內核模式的特點,能夠訪問任何有效的虛擬地址。假設現(xiàn)有一個64MB RAM的WINCE產(chǎn)品,RAM映射從0x80000000到0x84000000,如果線程處于內核模式,它就直接可以訪問這個范圍的虛擬地址:  
   在OnButton1()中編寫  
DWORD oldMode = SetKMode(FALSE);  
volatile int *piTemp = (volatile int*)(0x20000000+0x84000000-0x00019000); ///或者(0x84000000-0x00019000)  
*piTemp = 12345;  
在OnButton2()中編寫  
DWORD oldMode = SetKMode(FALSE);  
volatile int *piTemp = (volatile int*)(0x20000000+0x84000000-0x00019000); ///或者(0x84000000-0x00019000)  
int iTemp = *piTemp;  
   先只執(zhí)行OnButton1()然后關閉程序,再重啟程序然后執(zhí)行OnButton2(),iTemp仍然等于12345。結果說明了兩點:內核模式線程可以直接訪問0x80000000以上的有效虛擬地址;我們寫到RAM中的數(shù)據(jù)沒有丟失,說明虛擬地址有效。  
   如果在定制內核的時候沒有選擇“Full Kernel Mode”,那么在這個內核上運行的所有線程都處于用戶模式。可以調用SetKMode(TRUE)使調用線程暫時處于內核模式,還是原來的假設環(huán)境,我再舉個例子:  
在OnButton1()中編寫  
DWORD oldMode = SetKMode(TRUE);  
volatile int *piTemp = (volatile int*)(0x20000000+0x84000000-0x00019000); ///或者(0x84000000-0x00019000)  
*piTemp = 12345;  
   在用戶模式下,如果不調用SetKMode(TRUE),那么執(zhí)行*piTemp = 12345一定會彈出對話框,提示地址訪問非法,如果調用SetKMode(TRUE)就不會提示地址訪問非法,而且在OnButton2()中仍然能得到12345這個值。  
   通過這兩個例子我相信讀者能夠完全了解兩種模式的區(qū)別了。  
4)、WINCE提供了兩個函數(shù)SetKMode和SetProcPermissions,其中SetKMode能夠把調用線程切換到內核模式,還可以切換回用戶模式。SetProcPermissions + GetCurrentPermissions添加當前進程訪問權限給調用線程,SetProcPermissions (0xFFFFFFFF)能讓調用線程訪問所有進程空間,但是調用線程仍然處于用戶模式。SetKMode和SetProcPermissions函數(shù)使得用戶模式的特點不那么明晰。  
   如上所說一個應用程序的線程可能轉移到其它兩個進程地址空間中讀寫數(shù)據(jù),而每一個線程在被創(chuàng)建的時候只有訪問創(chuàng)建它的進程地址空間的權限,所以驅動程序開發(fā)者必須在驅動程序讀寫數(shù)據(jù)前調用SetKMode或者SetProcPermissions增加調用此函數(shù)的線程訪問其它進程空間的權限。如果一個應用程序的線程只轉移到一個進程地址空間,一般為設備管理器進程device.exe,這種情況下不必增加線程訪問其它進程空間的權限,但如果驅動程序本身創(chuàng)建了一個線程,那還是要調用SetKMode或者SetProcPermissions增加新的線程訪問其它進程的權限的,因為驅動程序創(chuàng)建線程時,當前進程為設備管理器,所以新線程只具有訪問設備管理器進程空間的權限,而不具備訪問應用程序進程空間的權限。  
5)、可能一個編寫過簡單的流驅動的初學者會很疑惑,因為開發(fā)一個簡單的流驅動程序根本不需要調用這些函數(shù),也沒有調用過MapPtrToProcess,那是因為如果標準流驅動接口函數(shù)的參數(shù)為指針(ReadFile、WriteFile、DeviceIoControl參數(shù)都有指針),WINCE內核會自動映射指針包含的地址,但僅此而已,其余任何情況都要求開發(fā)者自行處理,比如流接口函數(shù)的參數(shù)是一個指向結構體的指針PA,而結構體中包括指針PB,PB指針就必須在流接口函數(shù)中映射,映射后才能訪問,否則就會造成地址訪問非法。所以結構體中每個指針都要映射。  
   為了讓讀者能了解其中的原因,我舉個例子:  
   假設設備管理器被加載到Slot4,應用程序A被加載到Slot 8,A只有一個主線程T,T開始執(zhí)行,按照WINCE的規(guī)定,正獲得CPU的進程必須映射到Slot0,那么在執(zhí)行代碼的時候A的所有虛擬地址都被減去一個偏移值,也就是8×0x02000000,A調用DeviceIoControl,傳遞一個指向一個結構體的指針B,而這個結構體中包含一個指針C,指針C包含的地址假設為0x00030000,當執(zhí)行DeviceIoControl時WINCE把設備管理器的進程地址空間映射到Slot0,因為放在注冊表[HKLM\Drivers\BuiltIn]下的驅動程序是由設備管理器加載的,自然驅動程序的代碼段被加載到設備管理器進程空間,但是線程仍然是T,此時T的當前所在進程為設備管理器(CurrentProcess),A變成了T的調用者進程(CallerProcess),T自動具有了訪問調用者進程空間的權限。這時訪問Slot0中的虛擬地址其實質就是訪問設備管理器的進程地址空間,要把地址加上一個偏移值,也就是4×0x02000000,所以DeviceIoControl訪問指針C包含的地址時本應該加上8×0x02000000,卻加上4×0x02000000,結果地址并不是設備管理器的合法區(qū)域,系統(tǒng)就會提示地址訪問非法。而如果做了一個映射,指針C包含的地址就會被加一個正確的偏移值,使地址處于A的地址空間Slot 8中,T此時具有訪問A進程空間的權限,訪問到正確的虛擬地址當然會得到正確的數(shù)據(jù)了。  
  
70、 為什么WINCE目錄下的例子用build+sysgen能夠編譯成EXE文件,而我添加的例子就不能編譯呢?  
   如果這個例子是一個應用程序,那么肯定包括代碼文件(.h .c .cpp)和資源文件(.rc和其它資源文件),build工具根據(jù)source文件內容把代碼文件編譯成lib文件,資源文件編譯成.res文件,sysgen工具根據(jù)makefile文件內容將source文件中列出的需要鏈接的各個庫文件合并成一個EXE文件。所以說關鍵在于makefile文件,WINCE目錄下凡是能夠用build+sysgen編譯的都在makefile中有如何鏈接的設置,而我們添加的例子當然沒有在makefile中找到如何鏈接的設置,nmake工具就會提示不知道如何創(chuàng)建。  
  
71、pcienum.exe干什么用的?  
   如果你要開發(fā)某一個PCI設備的驅動程序,首先要知道這個PCI設備的信息(如VendorID、DeviceID、BaseClass、SubClass)和PCI總線的信息。運行這個pcienum.exe就能得到相關信息。pcienum.exe提供了源碼,位置\Public\Common\Oak\Drivers\Ceddk\Test\Pcienum。  
  
72、wince下如何讓操作系統(tǒng)進入待機模式?又如何把它激活?  
   通過注冊表就可以設置,前提是你的驅動和硬件都支持。注冊表項參見標題為“GWES Suspend Time-outs”的幫助文檔。  
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power]  
     "BattPowerOff"=dword:300  
     "ExtPowerOff"=dword:0  
     "WakeupPowerOff"=dword:60  
     "ScreenPowerOff"=dword:0  
  
73、 現(xiàn)有一個GPRS模塊,如何通過GPRS連接到Internet?  
1)、先在內核中加入WAN下面的幾個組件,如RAS/PPP、TAPI。WINCE采用unimodem驅動,所以不必擔心沒有Modem驅動的支持。  
2)、WINCE啟動后新建一個撥號連接,比如名稱叫“gprs1”,輸入用戶名、密碼、電話號碼。電話號碼不同,所采用的模式不一樣,例如“*99#”是GPRS模式,“17201”是普通的數(shù)據(jù)模式,速度差很多,價錢也差很多。  
3)、開始連接,連接過程會在對話框中顯示,直到顯示“連接成功”。  
4)、打開瀏覽器或者自己開發(fā)的通訊軟件測試網(wǎng)絡連接情況。  
5)、關閉連接。  
6)、保存[HKEY_CURRENT_USER\Comm\RasBook\gprs1]下的所有數(shù)據(jù),添加到project.reg中,重新編譯后內核中就有了一個撥號連接“gprs1”。  
7)、調用RAS函數(shù)可以修改撥號連接“gprs1”的參數(shù),如用戶名、密碼、電話號碼,但是不能修改硬件設置,如波特率、串口、數(shù)據(jù)位、停止位等。RAS函數(shù)還能夠撥號、掛斷。為了修改波特率可以多保存幾個撥號連接,也可以直接調用TAPI開發(fā)撥號軟件,另外WINCE自帶的撥號連接是有源碼的,位置在\PUBLIC\COMMON\OAK\DRIVERS\NETSAMP\CONNMC。  
  
74、采用基于HIVE的注冊表如何刪除用戶保存在注冊表中的數(shù)據(jù),恢復到出廠時的注冊表?  
   用戶修改的數(shù)據(jù)保存在user.hv文件中,直接刪除一定失敗,所以不能通過刪除文件實現(xiàn)恢復出廠設置。微軟考慮到了這個問題,在WINCE啟動過程中filesys.exe加載注冊表時會調用OEMIoControl函數(shù)并傳遞一個IOCTL,這個IOCTL在pkfuncs.h中定義如下:  
#define   IOCTL_HAL_GET_HIVE_CLEAN_FLAG   CTL_CODE(FILE_DEVICE_HAL, 49, METHOD_BUFFERED, FILE_ANY_ACCESS)  
f   ilesys.exe會分別傳遞參數(shù)HIVECLEANFLAG_SYSTEM和HIVECLEANFLAG_USERS,如果返回值為TRUE那么filesys.exe清除原來的注冊表文件,如果返回值為FALSE那么filesys.exe保留原來的注冊表文件。默認WINCE并沒有實現(xiàn)這個IOCTL,所以OEM要刪除注冊表文件就必須先編寫這個IOCTL代碼。代碼的例子可參考標題為“IOCTL_HAL_GET_HIVE_CLEAN_FLAG”的幫助文檔。另外必須在ioctl.h和ioctl.c兩個文件中編寫該代碼。在ioctl.c文件中找到const OAL_IOCTL_HANDLER g_oalIoCtlTable[],添加IOCTL和對應的處理函數(shù)。要進一步了解這個全局數(shù)組,參見標題為“IOCTL Library”的幫助文檔。  
  
75、如何在不刪除必要組件的前提下減小內核文件長度?  
   要減小內核文件長度首先要在使用PB的定制內核向導中選擇自定義,也就是說對于每個組件都由自己來選擇,而不是選擇PB的標準配置。但減小內核文件長度最有效最直接的辦法是縮小字體,尤其對于東亞字體,采用字體壓縮技術并且選擇合理的字庫文件將明顯縮小文件長度。  
1)、在定制內核時選擇AGFA AC3 Font Compression組件。SYSGEN變量為SYSGEN_AGFA_FONT。  
2)、參考標題為“East Asian Font Versions”的幫助文檔,從中選擇你需要的字庫文件加到內核中,從文檔可以看出加AC3壓縮比不加壓縮在文件長度方面差距很大。  
  
76、如何得到WAV文件播放的總時間?  
1、直接讀取wav文件頭信息,從文件起始地址偏移28個字節(jié)長度為4個字節(jié)保存的是每秒鐘播放的字節(jié)數(shù),從文件起始地址偏移40個字節(jié)長度為4個字節(jié)保存的是聲音數(shù)據(jù)的總的字節(jié)數(shù),相除就是播放時間。  
2、調用IGraphBuilder::RenderFile打開一個wav文件,然后通過IGraphBuilder得到IMediaSeeking指針,再調用IMediaSeeking::GetDuration得到總的時間(結果要除以10000000),IMediaSeeking::GetCurrentPosition得到當前播放時間。  
  
77、如何在Dialog-Based程序中加入menubar?  
   先調用CommandBar_Create再調用CommandBar_InsertMenubar。  
  
78、請問MultiByteToWideChar與_T、L、TEXT的區(qū)別?  
   MultiByteToWideChar函數(shù)轉換的對象可以是常量也可以是變量。其它只能轉換常量。_T和TEXT會根據(jù)當前系統(tǒng)是否定義_UNICODE宏來決定是否轉換,而L就是轉換成寬字符,當然也包括其他類型常量的轉換。  
  
79、 在用USB線纜通過ActiveSync同步有效的情況下,如何插上USB線纜后WINCE自動與PC同步?  
1)、新建一個撥號連接,假設名稱為“usb1”,選擇連接類型為“直接連接”,并在連接設備里選擇通過USB線纜連接。  
2)、將注冊表[HKEY_CURRENT_USER\Comm\RasBook\usb1]下的數(shù)據(jù)添加到project.reg或者platform.reg中。  
3)、在[HKEY_CURRENT_USER\ControlPanel\Comm]下添加如下:  
"AutoCnct"=dword:1   ///直接連接  
"Cnct"="usb1"       ///連接名稱  
4)、重新編譯內核。為了節(jié)省編譯時間也可以在內核工程下搜索*.reg文件,將2、3步驟中的注冊表數(shù)據(jù)添加其中,然后直接make image。  
  
80、如何通過進程句柄來獲得該進程的主窗口句柄?  
   好像沒有API能夠通過進程句柄直接獲得主窗口的句柄,因為并非每個應用程序都帶UI。但是可以反過來,先枚舉當前系統(tǒng)所有主窗口,然后根據(jù)每個窗口的句柄調用GetWindowThreadProcessId函數(shù)得到進程的ID,再調用OpenProcess得到進程句柄,與現(xiàn)有的進程句柄比較。  
  
81、我做的顯示驅動DLL已經(jīng)編譯成功了,但是在加載顯示驅動的過程中彈出話框,提示如下:  
   unhandled exception   in   gwes.exe   (0xc0000005 access violation)  
   提示的錯誤——地址訪問非法,表明你的驅動程序代碼并沒有在讀寫數(shù)據(jù)前添加SetKMode(TRUE)或者SetProcPermissions(0xFFFFFFFF)函數(shù)讓線程能夠訪問任何進程的地址空間。你可以調用 IsBadReadPtr和IsBadWritePtr函數(shù)檢測地址是否能夠合法訪問。編寫和gwes有關的驅動程序應該首先調用SetKMode(TRUE)或者SetProcPermissions(0xFFFFFFFF)函數(shù),這是一個好習慣。  
  
82、請問在嵌入式系統(tǒng)中如何設置GPRS拔號用的APN?  
對一個撥號連接比如“我的連接”單擊鼠標右鍵,在彈出的菜單中選擇“屬性”,然后單擊“配置”—“撥號選項”,在“附加設置”中添加AT命令如“+cgdc,"ip","cmnet"”。“cmnet”位置即為APN。  
  
83、WINCE的IP Phone功能如何?  
   WINCE的voip需要c-s-c結構,既需要服務器的中轉,而skype采用第三代p2p技術就不需要中轉,但是在gprs下也做不到語音流暢。skype有pocket pc版本,但是無線方面需要wlan或者cdma。  
  
84、 三星ARM平臺如何定義自己的中斷ID?  
   以S3C2410為例,在oalintr.h文件中定義中斷ID,也稱SYSINTR,例如 #define SYSINTR_MYINT   (SYSINTR_FIRMWARE+20),最大值不能超過SYSINTR_FIRMWARE+23。然后在armint.c文件中找到OEMInterruptHandler函數(shù),用if (IntPendVal == INTSRC_XXX) 判斷當前發(fā)生的中斷源號,然后返回SYSINTR_MYINT。內核分別調用OEMInterruptDisable(禁止當前中斷)、OEMInterruptDone(中斷處理結束)、OEMInterruptEnable(當前中斷有效)三個函數(shù),參數(shù)都為中斷ID,在這三個函數(shù)中用 case SYSINTR_MYINT判斷當前要處理的中斷。  
  
85、如何開發(fā)軟件從PC端復制文件到基于WINCE的設備?  
   調用RAPI(Remote Application Programming Interface)函數(shù),此函數(shù)集由桌面計算機調用,由基于WINCE的設備執(zhí)行。一旦連接上就可以在桌面計算機端調用RAPI。通過注冊表還可以限制RAPI能夠訪問目錄的范圍。具體參考RAPI和RDP(遠程桌面協(xié)議)。  
  
86、請問如何對NandFlash分區(qū)、格式化?  
   你看看WINCE420\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\BOOTPART\bootpart.cpp,在Eboot中先要調用BP_LowLevelFormat(  
DWORD dwStartBlock, DWORD dwNumBlocks, DWORD dwFlags)再flash的一個區(qū)域建立空的MBR,然后連續(xù)兩次調用BP_OpenPartition(DWORD dwStartSector, DWORD dwNumSectors, DWORD dwPartType, BOOL fActive, DWORD dwCreationFlags)函數(shù)來建立BINFS和FAT分區(qū)。建好后,將nk.bin燒入binfs分區(qū)中。  
  
87、要做個彈出對話框具有 always on top 屬性,如何實現(xiàn)?  
   調用SetWindowPos(.. , HWND_TOPMOST, ...., SWP_NOACTIVATE)。  
  
88、s3c2410+WINCE下網(wǎng)絡PING一會就斷,如何解決?  
   原因在于中斷處理程序把已經(jīng)產(chǎn)生的中斷標志清除掉了,這樣就丟失一次中斷。因為原驅動里配置中斷為上升沿觸發(fā),一次中斷丟失就導致不會再產(chǎn)生中斷信號跳變,因為只有在中斷服務中讀取了cs8900的 Interrupt status queue寄存器后,才會產(chǎn)生下一次中斷!解決辦法:  
1)、在cfw.c文件中全局定義BOOL Inited = FALSE  
2)、修改OEMInterruptEnable()中case SYSINTR_ETHER: 下面的語句為:  
if(Inited == FALSE)  
{  
s2410IOP->rEINTPEND = 0x200;  
s2410INT->rSRCPND = BIT_EINT8_23;  
if (s2410INT->rINTPND & BIT_EINT8_23)  
s2410INT->rINTPND = BIT_EINT8_23;  
Inited = TRUE;  
}  
s2410IOP->rEINTMASK &= ~0x200;  
s2410INT->rINTMSK &= ~BIT_EINT8_23;  
break;  
  
89、已經(jīng)搜索到文件,如何用CListBox以圖標形式顯示出來?  
CListCtrl         ListCtrl;  
CImageList       ImageList;  
ImageList.Create(IDB_BITMAP, 48, 2, RGB(0,0,0));  
ListCtrl.SetImageList(&ImageList, LVSIL_NORMAL);  
ListCtrl.InsertItem(iListIndex, strItem, 1);  
  
90、如何改變控制面板中電源屬性對話框的尺寸?  
1)、需要修改對話框的尺寸是因為對話框是以資源方式加載的,不會根據(jù)當前系統(tǒng)顯示分辨率而自我調節(jié)尺寸。  
2)、安裝WINCE后有一些組件(feature)的資源文件*.res就已經(jīng)有了,如果你不改變,那么build內核的時候PB只是把這些.res復制到工程目錄下,然后與*.obj合并成EXE、DLL、CPL。所以修改了.rc文件里面的對話框尺寸后要重新編譯.rc文件為.res文件,然后再覆蓋原來WINCE自帶的.res文件。  
3)、改變對話框尺寸有兩種辦法:一種方法是更改系統(tǒng)字體字號,系統(tǒng)字體的字號變化會影響對話框的尺寸,但是缺點是所有系統(tǒng)字體有關的UI都會改變。另一種是在.rc文件中調整對話框尺寸,然后編譯成.res文件,再將.res復制到對應的語言目錄里,比如目錄名為0804(中文),再執(zhí)行Rebuild命令重新編譯內核,或者執(zhí)行sysgen+build。在研究中我發(fā)現(xiàn).res文件雖然能夠直接用EVC打開、修改、保存,但是和其它Obj鏈接成EXE、DLL、CPL后并不能運行,所以還是建議讀者用CE自帶的rc工具編譯最好。讀者可在PB的命令行中鍵入“rc /?”了解rc.exe工具的用途和參數(shù)。  
  
91、使用EVC build之后連接模擬器的時候,提示download file等了一會又出現(xiàn)download failed?  
一般這樣的問題從下面幾個步驟解決:  
1)、如果之前能啟動模擬器而現(xiàn)在不能,那么先clean然后重啟計算機再build。  
2)、如果開發(fā)的主機為WINXP+SP2,可能存在與EVC模擬器不兼容的情況,檢查C:\boot.ini,將/noexecute=optin改為/execute=optin。  
3)、檢查你的模擬器是否能運行,假設你正用的SDK名稱為MYSDK,單擊菜單tools—configure platform manager,選擇MYSDK—MYSDK emulator,再單擊properties—test,看看模擬器是否能夠啟動,如果能啟動那問題就不大。  
4)、單擊菜單build—update remote output files,看看模擬器是否能夠啟動。  
5)、如果上述辦法均不行,關閉EVC然后重新建立一個新的工程,編譯,看看模擬器是否能夠啟動,如果能啟動說明原來工程出了問題,最好恢復原工程的備份。  
  
92、如何設置能夠自動撥號、禁止自動撥號?  
在[HKEY_LOCAL_MACHINE\Comm\Autodial]下是自動撥號的注冊表設置。  
Enabled=DWORD:1           ///是否能夠自動撥號  
FailRetryWaitMS=DWORD     ///如果失敗再次撥號的等待時間  
RasEntryName1= REG_SZ     ///自動撥號采用的撥號連接名稱  
更多細節(jié)請參考標題為“Auto Dial Registry Settings”的幫助文檔。
posted on 2009-07-16 15:52 Sandy 閱讀(743) 評論(0)  編輯 收藏 引用 所屬分類: Windows Mobile
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久视频在线视频| 国产综合视频在线观看| 亚洲综合日韩中文字幕v在线| 欧美大片免费观看| 欧美www视频在线观看| 免费在线国产精品| 亚洲国产1区| 亚洲黄网站黄| 一本一本久久a久久精品综合麻豆| 99av国产精品欲麻豆| 亚洲午夜视频在线| 久久国产精品第一页| 久久夜色精品亚洲噜噜国产mv | 久久成人亚洲| 久久久女女女女999久久| 久久久一二三| 欧美日韩在线另类| 国产美女诱惑一区二区| 黄色日韩在线| 亚洲视频一区二区| 欧美一区二区视频在线观看2020| 久久精品国产精品亚洲精品| 免费在线观看成人av| 亚洲日本理论电影| 欧美一区二区三区免费视频| 久久资源在线| 亚洲国产精品一区在线观看不卡| 欧美黄色日本| 欧美伊人久久久久久久久影院| 麻豆国产精品va在线观看不卡| 欧美国产日韩在线| 国产欧美69| 日韩视频一区二区在线观看 | 激情综合久久| 夜夜嗨av色一区二区不卡| 欧美一区二区三区久久精品茉莉花 | 久久国产精品一区二区三区四区| 免费高清在线一区| 国产精品视频不卡| 亚洲理论在线观看| 久久黄色影院| 亚洲图片欧洲图片日韩av| 久久人人超碰| 国产一区二区久久| 欧美一区1区三区3区公司| 亚洲国产日韩一级| 久久久久久婷| 国内精品久久久久久久果冻传媒| 日韩午夜电影| 亚洲成色777777女色窝| 欧美一区二区三区四区视频| 欧美日韩调教| 亚洲另类在线视频| 狼人天天伊人久久| 午夜国产欧美理论在线播放| 欧美日韩精品一二三区| 亚洲欧洲日本mm| 欧美成年网站| 久久综合久久综合久久| 精品电影在线观看| 美女日韩欧美| 久久亚洲春色中文字幕久久久| 国产亚洲女人久久久久毛片| 亚洲欧美激情精品一区二区| 一本色道久久88亚洲综合88 | 欧美大片一区| 亚洲人成网站影音先锋播放| 欧美成人免费在线观看| 久久久久国内| 亚洲国产一二三| 欧美激情综合色| 欧美激情一区二区三区在线视频 | 久久精品噜噜噜成人av农村| 国产一区二区三区在线观看精品 | 狠狠色丁香婷婷综合| 久久综合久色欧美综合狠狠| 久久久在线视频| 亚洲精品乱码久久久久久久久| 亚洲黄色影院| 国产精品毛片va一区二区三区| 亚洲欧美日韩天堂| 欧美在线观看一区二区| 亚洲电影成人| 妖精视频成人观看www| 国产精品久久久久毛片软件| 久久久久成人精品免费播放动漫| 久久综合导航| 亚洲一区欧美二区| 久久久精品一区| 亚洲私拍自拍| 久久经典综合| 亚洲视频在线看| 欧美一区亚洲二区| 亚洲美女视频在线免费观看| 一区二区日韩精品| 在线观看91久久久久久| 99在线精品视频在线观看| 国产在线精品成人一区二区三区| 免费一区二区三区| 国产精品极品美女粉嫩高清在线| 欧美在线|欧美| 欧美xx视频| 欧美一区观看| 亚洲狼人综合| 亚洲国产精品一区二区久 | 夜夜嗨网站十八久久| 免费视频亚洲| 亚洲一区二区三区四区五区黄| 正在播放欧美视频| 精品1区2区| 日韩一二三在线视频播| 国产欧美亚洲日本| 中国亚洲黄色| 在线看片欧美| 在线亚洲伦理| 狠狠色综合播放一区二区| 亚洲成色777777女色窝| 欧美成人精品激情在线观看| 久久国产精品久久精品国产| 欧美freesex交免费视频| 午夜国产精品视频| 久久综合中文| 欧美一区二区日韩| 久久久久久91香蕉国产| 亚洲综合电影| 欧美黄色视屏| 美女免费视频一区| 国产精品久久久爽爽爽麻豆色哟哟| 久久久久久精| 激情丁香综合| 亚洲免费网址| 亚洲三级色网| 欧美在线综合视频| 亚洲一区二区三区精品视频| 日韩一级在线观看| 欧美精品国产一区| 蜜臀va亚洲va欧美va天堂| 欧美私人啪啪vps| 亚洲电影一级黄| 亚洲经典在线看| 久久精品91| 久久久久久91香蕉国产| 国产精品二区影院| 亚洲电影第1页| 久久精品首页| 蜜臀久久99精品久久久久久9| 国产精品青草久久久久福利99| 亚洲国产欧美在线| 亚洲级视频在线观看免费1级| 欧美在线观看视频| 亚洲无玛一区| 国产一区二区日韩精品欧美精品| 一区二区欧美在线| 亚洲午夜一区| 欧美日韩一区在线观看| 欧美福利精品| 亚洲一区二区三区在线视频| 欧美日韩在线视频首页| 日韩一级精品视频在线观看| 亚洲婷婷免费| 国产精品热久久久久夜色精品三区| 玖玖国产精品视频| 99视频在线精品国自产拍免费观看 | 欧美xx69| 亚洲大胆美女视频| 久久综合给合久久狠狠狠97色69| 老司机成人网| 在线一区二区日韩| 欧美日本中文字幕| 亚洲视频电影图片偷拍一区| 亚洲一区二区在线看| 欧美私人网站| 亚洲国产精品久久久久秋霞影院 | 亚洲在线成人| 国产亚洲视频在线观看| 久久精品成人| 亚洲国产精品va| 亚洲综合精品一区二区| 欧美日韩亚洲一区二区三区在线观看 | 亚洲成人在线视频网站| 亚洲美女电影在线| 欧美日韩天天操| 亚洲欧美日本日韩| 久久久在线视频| 亚洲电影在线| 欧美激情一区二区三区在线视频| 亚洲精品中文字| 欧美一区久久| 狠狠色狠狠色综合| 欧美国产日本在线| 久久久久久国产精品mv| 亚洲性图久久| 一区在线免费| 欧美激情综合亚洲一二区| 亚洲日本欧美日韩高观看| 欧美一区二区三区在线播放| 亚洲电影免费观看高清| 国产精品视频精品| 欧美成人有码| 性色一区二区|