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

春暖花開(kāi)
雪化了,花開(kāi)了,春天來(lái)了
posts - 149,comments - 125,trackbacks - 0
WinCE驅(qū)動(dòng)開(kāi)發(fā)問(wèn)題精華集錦-2
摘自: http://hi.baidu.com/mcu%5Fspaces/blog/item/f14d1d2af1a2e33c5243c144.html


21、 文件格式如下所示,我想把每行的4個(gè)值讀到4個(gè)變量中,用EVC如何編程?  
   第一行: 460.000,   3384672.357342,   521268.972763  
   第二行: 475.117,   3384663.772419,   521281.415271  
   偽代碼如下:  
FILE   *stream;  
stream = _wfopen(L"\\a.txt", L"r+");  
if( stream == NULL )  
     return;  
fseek(stream, 0L, SEEK_SET );  
while( !feof( stream ) )  
{  
fwscanf(stream, L"%s", WCHAR1);  
     fwscanf(stream, L"%f", float1);  
     fwscanf(stream, L"%f", float2);  
     fwscanf(stream, L"%f", float3);  
}  
fclose( stream );  
  
22、GWES組件的功能有哪些?  
     GWES不僅負(fù)責(zé)GDI、窗口、消息,還負(fù)責(zé)管理本機(jī)設(shè)備驅(qū)動(dòng)程序,負(fù)責(zé)加載顯示、鍵盤(pán)鼠標(biāo)、觸摸屏驅(qū)動(dòng)程序,而且GWES本身包含電源、LED驅(qū)動(dòng)程序。  
  
23、如何在PB中預(yù)先設(shè)定好存儲(chǔ)內(nèi)存和程序內(nèi)存的大小,我想多劃分一些空間給程序內(nèi)存?  
   兩種辦法:  
   1)、在定制內(nèi)核時(shí)在config.bib文件中設(shè)置FSRAMPERCENT = number,具體number可參考標(biāo)題為“FSRAMPERCENT ”的幫助文檔。這種辦法是修改內(nèi)核的設(shè)置,所有一直有效。  
   2)、在應(yīng)用程序中調(diào)用API SetSystemMemoryDivision,如果函數(shù)返回SYSMEM_CHANGED表示成功,如果返回SYSMEM_MUSTREBOOT表示需要熱啟動(dòng)才能有效。這種辦法需要每次啟動(dòng)后調(diào)用API才有效。  
  
24、 如何取消鼠標(biāo)光標(biāo)?  
   通過(guò)取消SYS變量來(lái)實(shí)現(xiàn)此目的,在PB命令行下鍵入“set SYSGEN_CURSOR=”,然后回車(chē)確認(rèn)。  
  
25、EVC下調(diào)用TextOut如何編譯會(huì)出錯(cuò)?  
     類(lèi)似這樣的問(wèn)題很多,這是因?yàn)镋VC的幫助文檔內(nèi)容有錯(cuò)誤。可能EVC的幫助文檔內(nèi)容是從桌面Windows幫助文檔復(fù)制過(guò)來(lái)的,所以很多API函數(shù)還有例子代碼都有錯(cuò)誤,例如幫助文檔中包含一個(gè)API函數(shù)的說(shuō)明,但是實(shí)際編譯的時(shí)候提示沒(méi)有這個(gè)API,有的例子代碼采用ANSI字符串,而WINCE的API都是寬字符版本,造成直接復(fù)制過(guò)來(lái)編譯失敗。  
     因?yàn)镸FC for WINCE的CDC類(lèi)中沒(méi)有TextOut成員函數(shù),所以編譯會(huì)出錯(cuò),可以用其它類(lèi)成員函數(shù)ExtTextOut或者DrawText替換。  
  
26、我如何將我的dll軟件讓現(xiàn)有的ce系統(tǒng)認(rèn)可?盡管我也知道應(yīng)該使用signfile.exe程序進(jìn)行簽名,但是我并不知道那個(gè)ce系統(tǒng)認(rèn)可的簽名應(yīng)該是啥  
     如果你說(shuō)的WINCE系統(tǒng)內(nèi)核已經(jīng)加入了簽名認(rèn)證機(jī)制,那么沒(méi)有私鑰對(duì)你的DLL文件簽名肯定是無(wú)法運(yùn)行在此內(nèi)核中的,一般簽名密鑰的密鑰長(zhǎng)度都是1024位,很難破解。  
  
27、如果查看WINCE注冊(cè)表中的內(nèi)容?  
   兩種辦法:  
   1)、建立同步后,用EVC自帶的工具“Remote Registry Editor”打開(kāi)查看。  
   2)、從網(wǎng)上下載注冊(cè)表查看工具,放到WINCE設(shè)備中。  
  
28、調(diào)用directshow出現(xiàn)鏈接錯(cuò)誤,如何解決?  
player.obj : error LNK2001: unresolved external symbol _IID_IVideoWindow  
player.obj : error LNK2001: unresolved external symbol _IID_IMediaControl  

這是因?yàn)殒溄悠鳑](méi)有找到合適的.lib文件。兩種辦法:  
1)、在EVC菜單Tools—options—directories 里把library files的路徑重新調(diào)整一下。如果你只安裝了EVC自帶的Standard SDK而沒(méi)有其它SDK,可以指定WINCE目錄中的.lib文件路徑,例如D:\WINCE500\PUBLIC\DIRECTX\OAK\LIB\X86\RETAIL。注意CPU的類(lèi)型。  
2)、安裝SDK,前提是導(dǎo)出SDK的PB內(nèi)核工程必須包括DirectShow或者其它組件。  
  
29、在PB的config.bib文件中,“IMGFLASH”表示什么意思呢?  
     表示能夠刷NK到ROM中,具體請(qǐng)查看標(biāo)題為“IMG Environment Variables”的幫助文檔。  
  
30、x86平臺(tái)如何映射各種地址空間?如何編寫(xiě)中斷服務(wù)例程?  
如果是x86平臺(tái),可以調(diào)用HalTranslateBusAddress轉(zhuǎn)換物理總線地址到物理系統(tǒng)地址,調(diào)用HalTranslateSystemAddress轉(zhuǎn)換物理系統(tǒng)地址到邏輯總線地址,也可以不調(diào)用這兩個(gè)函數(shù),因?yàn)閤86平臺(tái)除32位物理地址外還有16位的IO地址空間,對(duì)于16位的IO地址空間,可以直接調(diào)用WRITE_PORT_UCHAR或者READ_PORT_UCHAR等函數(shù)直接讀寫(xiě)端口。對(duì)于32位物理地址可以調(diào)用VirtualAlloc和VirtualCopy來(lái)映射。這樣做思路清晰,簡(jiǎn)單明了。  
在x86平臺(tái)要實(shí)現(xiàn)ISR,有如下幾個(gè)步驟(以Geode BSP為例):  
1)、用SETUP_INTERRUPT_MAP宏關(guān)聯(lián)SYSINTR和IRQ。以“SYSINTR_”為前綴的常量由內(nèi)核使用,用于唯一標(biāo)識(shí)發(fā)生中斷的硬件,又稱(chēng)為中斷ID。在Nkintr.h文件中預(yù)定義了一些SYSINTR,OEM可以在Oalintr.h文件中自定義SYSINTR。  
2)、用HookInterrupt函數(shù)關(guān)聯(lián)硬件中斷號(hào)和ISR。這里提到的硬件中斷號(hào)為物理中斷號(hào),IRQ為邏輯中斷號(hào)。在InitPICs函數(shù)的最后調(diào)用了HookInterrupt函數(shù),如下:  
for (i = 64; i < 80; i++)  
HookInterrupt(i, (void *)PeRPISR);   ///用ISR關(guān)聯(lián)16個(gè)中斷號(hào)  
3)、調(diào)用InterruptInitialize函數(shù)關(guān)聯(lián)SYSINTR和IST創(chuàng)建的事件對(duì)象,也是IST等待的事件對(duì)象。詳細(xì)內(nèi)容請(qǐng)參考Geode BSP源碼。  
   在x86平臺(tái)要實(shí)現(xiàn)可安裝ISR,先調(diào)用LoadIntChainHandler函數(shù)注冊(cè)在注冊(cè)表中指定的ISR DLL,然后填充GIISR_INFO結(jié)構(gòu)體并調(diào)用KernelLibIoControl函數(shù)將此結(jié)構(gòu)體傳遞給可安裝ISR。詳細(xì)內(nèi)容請(qǐng)參考WINCE幫助文檔或者我著的《Windows CE下驅(qū)動(dòng)開(kāi)發(fā)基礎(chǔ)》。  
  
31、修改了WINCE自帶的驅(qū)動(dòng)程序后如何編譯?如果是自己開(kāi)發(fā)的驅(qū)動(dòng)程序如何編譯?  
1)、分為IDE方式和命令行方式。  
IDE方式的編譯很簡(jiǎn)單,以PB5.0為例,打開(kāi)定制內(nèi)核的工程,在左邊的“workspace”—“FileView”中找到你已經(jīng)修改了的目錄,然后單擊右鍵彈出菜單,在菜單中選擇“Build and Sysgen Current Project”,這樣PB就會(huì)編譯指定的目錄中的項(xiàng)目源碼文件,然后執(zhí)行sysgen命令根據(jù)source文件中的內(nèi)容生成目標(biāo)文件并復(fù)制到當(dāng)前內(nèi)核工程目錄下。  
命令行方式的編譯需要打開(kāi)“Build OS”—“Open Release Directory”,以cd命令進(jìn)入你已經(jīng)修改的驅(qū)動(dòng)程序目錄中,然后鍵入“build –cfs”,然后鍵入“sysgen –p 項(xiàng)目名稱(chēng)”,一般項(xiàng)目名稱(chēng)為source文件中的“TARGETNAME”。  
2)、如果想完全自己開(kāi)發(fā)驅(qū)動(dòng)程序,建議直接采用EVC或者PB來(lái)編寫(xiě)編譯。  
  
32、開(kāi)發(fā)PCI設(shè)備驅(qū)動(dòng)時(shí),InterruptInitialize函數(shù)的第一參數(shù)是否是PCI卡配置空間信息中的InterruptLine 參數(shù)?是否需要在HKLM\Drivers\BuiltIn\PCI\Template 加一個(gè)自己的 subkey,并填寫(xiě)相應(yīng)內(nèi)容?如何填?  
1)、InterruptInitialize的第一參數(shù)是IRQ,也就是邏輯中斷號(hào),而不是物理中斷號(hào),InterruptLine是指物理中斷號(hào)  
2)、需要在template下加自己的PCI設(shè)備的信息,例如:  
   [HKEY_LOCAL_MACHINE\Drivers\PCI\Template\Serial]  
     "Dll"="Com16550.Dll"  
     "Class"=dword:07  
     "SubClass"=dword:00  
     "ProgIF"=dword:02  
     "VendorID"=multi_sz:"0AF0","B320","B320"  
     "DeviceID"=multi_sz:"0020","0300","0302"  
     "Prefix"="COM"  
而這些信息就來(lái)自于你執(zhí)行pcienum.exe的結(jié)果。  
  
33、編譯器報(bào)錯(cuò):error C2065: 'CFileFind' : undeclared identifier,如何解決?  
   MFC for WINCE版本沒(méi)有CFileFind類(lèi),所以要查找文件只能調(diào)用API FindFirstFile 和FindNextFile。  
  
34、如何設(shè)置WINCE系統(tǒng)字體、字號(hào)?如何設(shè)置自己開(kāi)發(fā)的軟件的字體、字號(hào)?  
1)、系統(tǒng)字體通過(guò)注冊(cè)表設(shè)置。如下:  
[HKEY_LOCAL_MACHINE\System\GDI\SysFnt]   ///系統(tǒng)字體  
Wt=420  
Ht=18  
Nm=Arial  
[HKEY_LOCAL_MACHINE\System\GWE\Menu\BarFnt]   ///菜單欄字體  
[HKEY_LOCAL_MACHINE\System\GWE\Menu\PopFnt]   ///彈出窗口字體  
[HKEY_LOCAL_MACHINE\System\GWE\Menu]         ///菜單字體  
HKEY_LOCAL_MACHINE\System\GWE\Button           ///按鈕字體  
2)、創(chuàng)建字體時(shí)把字體高度參數(shù)設(shè)置大點(diǎn)就可以了。如CFont::CreateFont(nHeight,...),也可以在LOGFONT結(jié)構(gòu)中設(shè)置字體高度或者字體種類(lèi)。如果是控件,調(diào)用控件的SetFont成員函數(shù)。如果是直接畫(huà),在OnPaint響應(yīng)函數(shù)中調(diào)用SelectObject選字體到DC。  
  
35、 nk.bin和nk.nb0有什么區(qū)別?  
   這里提到的bin是一種二進(jìn)制鏡像格式,以片斷(section)為單位組織數(shù)據(jù),每個(gè)片斷都包括一個(gè)頭,頭里指定了起始地址,長(zhǎng)度,校驗(yàn)值。Platform Builder調(diào)用工具將WINCE內(nèi)核所有文件以bin格式合并成一個(gè)文件,默認(rèn)文件名為nk.bin。BootLoader又以同樣的格式將nk.bin分解成多個(gè)文件放到RAM中。可以在命令行中鍵入“viewbin nk.bin”來(lái)查看bin文件中具體包括了哪些內(nèi)容。鍵入Cvrtbin命令轉(zhuǎn)換.bin格式文件為.sre格式或者.abx格式。  
   nb0格式是原始的二進(jìn)制鏡像,它不包括頭,一般情況下將內(nèi)核下載到設(shè)備的RAM中運(yùn)行都采用nb0格式。要生成nbx格式的文件,需要在相關(guān).bib文件中確定如下值:ROMSTART、ROMWIDTH、ROMSIZE。  
  
36、在不采用硬件計(jì)時(shí)器的情況下如何創(chuàng)建更精確的計(jì)時(shí)器?最精確周期能否達(dá)到1毫秒?  
對(duì)于精確值的要求不同,所采用的辦法不同。以下闡述幾種辦法。  
1)、在單線程中循環(huán)調(diào)用API Sleep函數(shù),Sleep函數(shù)精確程度為如果Sleep(N),那么實(shí)際睡眠時(shí)間在N到N+1毫秒之間。而且還要注意調(diào)用Sleep的線程優(yōu)先級(jí)的問(wèn)題。如果任務(wù)過(guò)多并且此線程優(yōu)先級(jí)低,那誤差就更大些。  
2)、調(diào)用API QueryPerformanceCounter函數(shù),舉例如下:  
LARGE_INTEGER   liFrequency;  
if (QueryPerformanceFrequency(&liFrequency))   // 查詢系統(tǒng)時(shí)鐘的頻率,這里將返回1000  
{  
   liFrequency.QuadPart /= 1000;    
   LARGE_INTEGER   liTimeOut;    
   if (QueryPerformanceCounter(&liTimeOut))   //得到截至到當(dāng)前累計(jì)發(fā)生的系統(tǒng)時(shí)鐘中斷次數(shù)  
   {  
       liTimeOut.QuadPart += liFrequency.QuadPart;   ///計(jì)算下一秒到來(lái)時(shí)總的中斷次數(shù)是多少  
       LARGE_INTEGER   liCurrent;  
       do  
       {          
         QueryPerformanceCounter(&liCurrent);     // 循環(huán)查詢累計(jì)的的中斷次數(shù)  
       } while (liCurrent.QuadPart < liTimeOut.QuadPart); ///到達(dá)下一秒  
   }  
}  
調(diào)用QueryPerformanceCounter同調(diào)用Sleep在本質(zhì)上都是一樣的,都是在單線程中無(wú)限循環(huán)等到周期一到執(zhí)行任務(wù),相比較QueryPerformanceCounter要比Sleep更精確些,越精確就越要求線程的優(yōu)先級(jí),保障線程能夠正常得到處理器。  
3)、以上辦法難以保證周期精確到1毫秒并且WINCE系統(tǒng)穩(wěn)定地運(yùn)行,所以要從中斷入手。以x86平臺(tái)為例,先在Timer.c中將默認(rèn)的SetTimer0(TIMER_COUNT)中的TIMER_COUNT /=2,SetTimer0函數(shù)負(fù)責(zé)設(shè)置系統(tǒng)時(shí)鐘的頻率,默認(rèn)1毫秒發(fā)生一次中斷,如果除以2就是0.5毫秒發(fā)生一次中斷。然后在fwpc.c文件中修改ISR函數(shù)PeRPISR,因?yàn)樵瓉?lái)默認(rèn)是1毫秒發(fā)生一次中斷,在處理INTR_TIMER0時(shí)系統(tǒng)負(fù)責(zé)累計(jì)計(jì)數(shù)、管理線程的調(diào)度,返回相應(yīng)的SYSINTR值,而我們沒(méi)有辦法再添加代碼返回自己定義的SYSINTR值,所以現(xiàn)在要修改原來(lái)的處理代碼,例如設(shè)置一個(gè)BOOL型變量,TRUE就執(zhí)行原來(lái)默認(rèn)的代碼,而FALSE就返回我們自己定義的SYSINTR值,這樣即不影響原來(lái)的ISR處理,又加入了我們的中斷響應(yīng)代碼。ISR返回我們定義的SYSINTR后WINCE內(nèi)核激活相對(duì)應(yīng)的EVENT事件,我們就可以在我們編寫(xiě)的IST里處理任務(wù)了。  
  
37、flash中存放了BootLoader和內(nèi)核鏡像,如何把剩余flash部分劃分為一個(gè)存儲(chǔ)區(qū)域供應(yīng)用程序讀寫(xiě)?  
   以WINCE提供的驅(qū)動(dòng)(FAT文件系統(tǒng)和MSFLASH驅(qū)動(dòng))來(lái)舉例說(shuō)明。如果采用默認(rèn)common.reg中的注冊(cè)表設(shè)置,那么MSFLASH驅(qū)動(dòng)默認(rèn)把整個(gè)flash作為存儲(chǔ)區(qū)域來(lái)讀寫(xiě),這不符合問(wèn)題的要求,所以必須告訴MSFLASH驅(qū)動(dòng)程序可供讀寫(xiě)的區(qū)域的起始地址和長(zhǎng)度。以下是一個(gè)注冊(cè)表例子:  
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FASLD]  
     "Dll"="fasld.dll"         ///實(shí)際Flash存儲(chǔ)器的驅(qū)動(dòng)程序  
     "Order"=dword:2       ///該驅(qū)動(dòng)程序相對(duì)于其它驅(qū)動(dòng)程序的加載順序  
     "Prefix"="DSK"         ///前綴  
     "Ioctl"=dword:4         ///IOCTL碼,設(shè)備管理器加載驅(qū)動(dòng)的時(shí)候調(diào)用IOControl函數(shù),傳遞這個(gè)IOCTL碼。  
"Profile"="MSFlash"     ///Profile名稱(chēng),也就是[HLM\System\StorageManager\Profiles\MSFlash]  
///當(dāng)設(shè)備管理器加載此驅(qū)動(dòng)程序的同時(shí)發(fā)送通知給系統(tǒng),IClass(GUID)的值表明這是一個(gè)存儲(chǔ)設(shè)備的驅(qū)動(dòng)程序。  
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"    
     "MemBase"=dword:00000000     ///Flash中可供讀寫(xiě)區(qū)域的起始物理地址,也就是Flash的首地址+偏移量  
     "MemLen"=dword:00000000     ///Flash中可供讀寫(xiě)區(qū)域的長(zhǎng)度  
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash]  
     "DefaultFileSystem"="FATFS"   ///MSFlash驅(qū)動(dòng)默認(rèn)采用的文件系統(tǒng)  
     "PartitionDriver"="mspart.dll"     ///采用的分區(qū)驅(qū)動(dòng)程序  
     "MountAsRoot"=dword:1         ///此目錄作為文件系統(tǒng)的根目錄  
     "Folder"="NOR Flash"           ///目錄名稱(chēng)  
     "Name"="FLASH Disk Block Device"   ///Flash驅(qū)動(dòng)名稱(chēng)  
"PartitionDriverName"="MSPART" ///分區(qū)驅(qū)動(dòng)名稱(chēng)  
"AutoMount"=dword:1         ///自動(dòng)裝載檢測(cè)到的分區(qū)  
     "AutoPart"=dword:1             ///自動(dòng)分區(qū)  
     "AutoFormat"=dword:1           ///自動(dòng)格式化分區(qū)  
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]  
     "DriverPath"="Drivers\\BuiltIn\\FASLD"     ///Flash驅(qū)動(dòng)在注冊(cè)表中的位置  
     "LoadFlags"=dword:1                 ///這個(gè)值可以被設(shè)置為0、1、2。1表示同步加載,其它表示異步加載  
     "Order"=dword:0  
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]  
     "FriendlyName"="FAT FileSystem"     ///文件系統(tǒng)名稱(chēng)  
     "Dll"="fatfsd.dll"                   ///文件系統(tǒng)驅(qū)動(dòng)程序  
     "Flags"=dword:00000064             ///標(biāo)志,詳見(jiàn)幫助文檔  
     "Paging"=dword:1                   ///是否分頁(yè)  
     "EnableCache"=dword:1               ///是否允許緩存數(shù)據(jù)  
     "CacheSize"=dword:0                 ///指定緩存大小,0表示默認(rèn)  

38、驅(qū)動(dòng)程序如何發(fā)通知給應(yīng)用程序?  
   這里介紹一下常見(jiàn)的兩種辦法。  
   1)、驅(qū)動(dòng)程序調(diào)用API SendNotifyMessage,發(fā)送特定的消息給應(yīng)用程序,這就要求應(yīng)用程序要有消息循環(huán)機(jī)制并且要事先做好消息的處理。參數(shù)1為窗口句柄,可以設(shè)置HWND_BROADCAST表示廣播消息。要注意的是不要在參數(shù)中傳遞指針(虛擬地址),因?yàn)閳?zhí)行驅(qū)動(dòng)程序的線程和應(yīng)用程序并不在同一個(gè)進(jìn)程空間中。解決辦法可以利用內(nèi)存映射文件技術(shù),比如在驅(qū)動(dòng)程序中創(chuàng)建一個(gè)內(nèi)存映射文件對(duì)象,申請(qǐng)一塊物理內(nèi)存,然后把對(duì)象名稱(chēng)和內(nèi)存長(zhǎng)度傳遞給應(yīng)用程序,應(yīng)用程序打開(kāi)同名的內(nèi)存映射文件對(duì)象,讀取里面的數(shù)據(jù)。對(duì)象名稱(chēng)可以事先協(xié)定好,也可以通過(guò)注冊(cè)表來(lái)傳遞,內(nèi)存長(zhǎng)度是32位值,通過(guò)消息參數(shù)就可以傳遞,也可以通過(guò)注冊(cè)表來(lái)傳遞。另外一種解決辦法是在定制內(nèi)核時(shí)候預(yù)留一塊物理內(nèi)存,這樣驅(qū)動(dòng)程序和應(yīng)用程序都可以通過(guò)VirtualAlloc和VirtualCopy來(lái)映射到同一塊物理內(nèi)存,其原理同內(nèi)存映射文件技術(shù)一樣,但是這塊物理內(nèi)存不具備通用性。最后一個(gè)辦法是應(yīng)用程序事先將一個(gè)緩沖區(qū)地址傳遞給驅(qū)動(dòng)程序,驅(qū)動(dòng)程序調(diào)用MapPtrToProcess映射應(yīng)用程序傳遞過(guò)來(lái)的地址,當(dāng)驅(qū)動(dòng)程序調(diào)用SendNotifyMessage后應(yīng)用程序可以直接到該地址中讀取數(shù)據(jù)。  
   設(shè)備管理器就是調(diào)用此函數(shù)廣播WM_DEVICECHANGE消息的。另外WINCE的一個(gè)例子程序RNAApp在撥號(hào)連接建立的時(shí)候也是調(diào)用這個(gè)函數(shù)廣播WM_NETCONNECT消息的。  
   2)、驅(qū)動(dòng)程序調(diào)用API CeEventHasOccurred指明一個(gè)事件A發(fā)生,在此之前應(yīng)用程序調(diào)用API CeRunAppAtEvent將驅(qū)動(dòng)程序指明的A事件和一個(gè)應(yīng)用程序名稱(chēng)相關(guān)聯(lián),或者和一個(gè)事件B相關(guān)聯(lián)。這樣當(dāng)A事件發(fā)生時(shí),如果指明和一個(gè)應(yīng)用程序名稱(chēng)關(guān)聯(lián),那這個(gè)應(yīng)用程序就會(huì)被啟動(dòng)。如果指明了和一個(gè)事件B相關(guān)聯(lián),那么等待事件B的線程將被激活。如果想了解當(dāng)前系統(tǒng)內(nèi)部所有驅(qū)動(dòng)程序支持哪些類(lèi)似事件A的事件,調(diào)用API CeNotifyPublic_FilterEvent,在該API的幫助文檔里也列舉了常見(jiàn)的事件,例如NOTIFICATION_EVENT_NET_CONNECT和 NOTIFICATION_EVENT_NET_DISCONNECT。  
  
40、 EVC創(chuàng)建的工程名稱(chēng)如果用中文就出錯(cuò),該怎么辦?  
   用EVC創(chuàng)建的工程名稱(chēng)如果為中文將導(dǎo)致資源文件打不開(kāi)和編譯出錯(cuò),可以改資源文件名稱(chēng)為英文,再編輯.rc文件中的資源文件名稱(chēng)。但建議盡量不要用中文為工程名稱(chēng)。  
   作為習(xí)慣,應(yīng)該在EVC創(chuàng)建一個(gè)工程后,立刻在“project”—“settings”中設(shè)置資源的語(yǔ)言屬性,然后在“resource view”中設(shè)置每個(gè)資源的語(yǔ)言屬性,這些工作做完后再修改資源就沒(méi)有問(wèn)題了。有人詢問(wèn)對(duì)話框的標(biāo)題為亂碼,其原因就是在沒(méi)有修改語(yǔ)言屬性的情況下設(shè)置標(biāo)題為中文。
posted on 2009-07-16 15:41 Sandy 閱讀(754) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 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>
            国产一区二区三区四区老人| 韩曰欧美视频免费观看| 日韩视频免费观看| 亚洲国产精品一区制服丝袜| 久久精品中文字幕一区| 国内精品99| 久久一区二区视频| 麻豆成人综合网| 亚洲精品国产日韩| 亚洲另类自拍| 国产精品永久免费在线| 欧美一区二区视频观看视频| 性欧美大战久久久久久久免费观看| 国产精品视频男人的天堂| 欧美一区二区视频观看视频| 久久精品一本久久99精品| 一区二区三区在线视频播放| 欧美激情第3页| 欧美视频中文在线看| 久久超碰97中文字幕| 欧美在线影院| 亚洲精品1区| 亚洲一卡二卡三卡四卡五卡| 精品成人免费| 亚洲狼人综合| 国产最新精品精品你懂的| 亚洲大片免费看| 国产精品一区二区久激情瑜伽| 久久久午夜电影| 欧美精品一区在线| 欧美一区二区视频97| 欧美第一黄色网| 性亚洲最疯狂xxxx高清| 欧美69视频| 欧美与欧洲交xxxx免费观看| 欧美大片18| 久久成人18免费网站| 欧美激情在线有限公司| 久久嫩草精品久久久精品一| 欧美三级网页| 欧美激情第10页| 国内精品久久久久伊人av| 亚洲伦理在线| 亚洲精品乱码久久久久久久久| 亚洲欧美日韩精品在线| 亚洲精品久久久久久久久久久| 亚洲男人av电影| 一区二区三区久久| 免费久久精品视频| 久久男人av资源网站| 欧美性做爰毛片| 91久久亚洲| 91久久国产综合久久| 久久精品噜噜噜成人av农村| 亚洲欧美日韩一区二区三区在线| 欧美电影在线观看完整版| 久久一区激情| 国产在线欧美日韩| 午夜精品在线看| 欧美亚洲一区在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 欧美高清在线一区二区| 国产精品一区一区| 99成人在线| 亚洲视频精选在线| 欧美日韩中文字幕综合视频| 亚洲激情一区| 99视频超级精品| 欧美精品二区| 亚洲老板91色精品久久| 99这里有精品| 欧美日韩美女| 亚洲视频在线观看网站| 亚洲自拍三区| 国产欧美日韩精品专区| 亚洲免费视频一区二区| 午夜精品久久久| 国产一区二区看久久| 欧美亚洲免费电影| 猫咪成人在线观看| 亚洲国产精品va在线看黑人动漫| 麻豆91精品91久久久的内涵| 欧美韩日一区二区| 日韩视频第一页| 国产精品a久久久久| 一区二区欧美在线| 久久riav二区三区| 在线日韩成人| 欧美精品一区二区三区在线播放 | 亚洲免费一在线| 久久久久久高潮国产精品视| 影视先锋久久| 欧美国产日韩在线| 在线视频日韩| 久久午夜色播影院免费高清| 91久久久久久| 国产精品乱码妇女bbbb| 久久激五月天综合精品| 亚洲国产精选| 性欧美1819sex性高清| 激情欧美一区二区三区在线观看| 男女激情久久| 午夜欧美大尺度福利影院在线看| 嫩草伊人久久精品少妇av杨幂| 夜夜嗨av一区二区三区四季av| 国产精品欧美日韩一区二区| 久久久久久久999精品视频| 亚洲精品免费一二三区| 欧美在线亚洲一区| 亚洲精品中文字幕女同| 国产欧美日韩一区二区三区在线观看 | 99精品国产福利在线观看免费| 香蕉精品999视频一区二区| 国产午夜精品久久久久久免费视| 欧美69视频| 久久se精品一区二区| 亚洲精品欧美极品| 麻豆精品一区二区av白丝在线| 亚洲午夜视频| 亚洲精品久久在线| 精品成人a区在线观看| 欧美视频免费| 欧美xxxx在线观看| 久久av红桃一区二区小说| 9久re热视频在线精品| 欧美福利在线观看| 久久五月婷婷丁香社区| 午夜一区二区三区在线观看| 日韩午夜免费视频| 亚洲国产精品一区二区www| 国产欧美一区二区白浆黑人| 欧美午夜一区二区福利视频| 美女国内精品自产拍在线播放| 性8sex亚洲区入口| 亚洲午夜性刺激影院| 99热免费精品| 日韩亚洲国产欧美| 亚洲国产mv| 亚洲国产高清视频| 欧美韩日亚洲| 亚洲高清av在线| 欧美激情在线观看| 欧美大片91| 亚洲国内精品| 亚洲人成高清| 亚洲乱码日产精品bd| 亚洲黄色高清| 亚洲精品日韩在线观看| 亚洲激情电影中文字幕| 亚洲韩国青草视频| 亚洲区欧美区| 一本色道久久精品| 宅男精品导航| 先锋资源久久| 久久精品视频导航| 久久夜色精品一区| 美女成人午夜| 欧美日韩国产一级片| 国产精品高潮粉嫩av| 国产精品美女主播在线观看纯欲| 国产精品国产三级国产aⅴ入口| 欧美视频在线观看 亚洲欧| 国产精品久久久久久亚洲调教| 国产精品女人毛片| 韩国三级电影一区二区| 亚洲国产老妈| 在线亚洲激情| 欧美在线免费视屏| 欧美a级在线| 91久久精品国产91久久| 一本色道婷婷久久欧美| 午夜精品婷婷| 美女网站在线免费欧美精品| 欧美区一区二区三区| 国产毛片精品国产一区二区三区| 国外视频精品毛片| 亚洲精品永久免费| 欧美一区二区黄| 欧美国产日韩在线| 亚洲网站啪啪| 欧美成人激情视频| 国产精品实拍| 亚洲精品视频免费| 久久爱www| 亚洲精品日韩在线观看| 欧美亚洲一区| 欧美涩涩网站| 1024国产精品| 香蕉尹人综合在线观看| 亚洲第一精品电影| 小黄鸭精品aⅴ导航网站入口| 欧美成人网在线| 国产精品专区一| 99热精品在线观看| 免费精品视频| 欧美一区二区三区视频| 欧美日韩国产色综合一二三四| 狠狠色丁香婷婷综合| 亚洲女优在线| 亚洲毛片视频|