亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊(cè)

lj<b>WE</b>rlkj<b>WE</b>orj

  • 溫度華氏轉(zhuǎn)變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void)

    溫度華氏轉(zhuǎn)變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級(jí)!!\n") else if (a>=80) printf("73分=B等級(jí)!!\n") else if (a>=70) printf("73分=C等級(jí)!!\n") else if (a>=60) printf("73分=D等級(jí)!!\n") else if (a<60) printf("73分=E等級(jí)!!\n") } { if (b>=90) printf("b=A等級(jí)!!\n") else if (b>=80) printf("85分=B等級(jí)!!\n") else if (b>=70) printf("85分=C等級(jí)!!\n") else if (b>=60) printf("85分=D等級(jí)!!\n") else if (b<60) printf("85分=E等級(jí)!!\n") } { if (c>=90) printf("c=A等級(jí)!!\n") else if (c>=80) printf("66分=B等級(jí)!!\n") else if (c>=70) printf("66分=C等級(jí)!!\n") else if (c>=60) printf("66分=D等級(jí)!!\n") else if (c<60) printf("66分=E等級(jí)!!\n") } system("pause") return 0 }

    標(biāo)簽: include stdlib stdio gt

    上傳時(shí)間: 2014-11-10

    上傳用戶:wpwpwlxwlx

  • 溫度華氏轉(zhuǎn)變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void)

    溫度華氏轉(zhuǎn)變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級(jí)!!\n") else if (a>=80) printf("73分=B等級(jí)!!\n") else if (a>=70) printf("73分=C等級(jí)!!\n") else if (a>=60) printf("73分=D等級(jí)!!\n") else if (a<60) printf("73分=E等級(jí)!!\n") } { if (b>=90) printf("b=A等級(jí)!!\n") else if (b>=80) printf("85分=B等級(jí)!!\n") else if (b>=70) printf("85分=C等級(jí)!!\n") else if (b>=60) printf("85分=D等級(jí)!!\n") else if (b<60) printf("85分=E等級(jí)!!\n") } { if (c>=90) printf("c=A等級(jí)!!\n") else if (c>=80) printf("66分=B等級(jí)!!\n") else if (c>=70) printf("66分=C等級(jí)!!\n") else if (c>=60) printf("66分=D等級(jí)!!\n") else if (c<60) printf("66分=E等級(jí)!!\n") } system("pause") return 0 }

    標(biāo)簽: include stdlib stdio gt

    上傳時(shí)間: 2013-12-12

    上傳用戶:亞亞娟娟123

  • 給你A,B兩個(gè)字符串

    給你A,B兩個(gè)字符串,檢查B串是否是A串的子串,類似于Java的String.indexOf("")。找到匹配失敗時(shí)的最合適的回退位置,而不是簡單的回退到子串的第一個(gè)字符(常規(guī)的枚舉查找方式,是簡單的回退到子串的第一個(gè)字符,KMP算法的性能分析Java實(shí)現(xiàn)實(shí)例)*此僅供大家參考、交流,希望對(duì)大家有所幫助!

    標(biāo)簽: 字符串

    上傳時(shí)間: 2017-05-20

    上傳用戶:498732662

  • SN系列用戶手冊(cè)B版

    SN系列用戶手冊(cè)B版SN系列用戶手冊(cè)B版SN系列用戶手冊(cè)B版SN系列用戶手冊(cè)B版SN系列用戶手冊(cè)B版

    標(biāo)簽: 用戶手冊(cè)

    上傳時(shí)間: 2017-05-28

    上傳用戶:黑色的馬

  • ASR M08-B資料

    ASR M08-B設(shè)置軟件 V3.2  arduino 2560+ASRM08-B測試程序  arduino UNO+ASRM08-B測試程序語音控制臺(tái)燈電路圖及C51源碼(不帶校驗(yàn)碼) 繼電器模塊設(shè)置。   ASR M08-B是一款語音識(shí)別模塊。首先對(duì)模塊添加一些關(guān)鍵字,對(duì)著該模塊說出關(guān)鍵字,串口會(huì)返回三位的數(shù),如果是返回特定的三位數(shù)字,還會(huì)引起ASR M08-B的相關(guān)引腳電平的變化。【測試】①打開“ASR M08-B設(shè)置軟件 V3.2.exe”。②選擇“串口號(hào)”、“打開串口”、點(diǎn)選“十六進(jìn)制顯示”。③將USB轉(zhuǎn)串口模塊連接到語音識(shí)別模塊上。接線方法如下:語音模塊TXD --> USB模塊RXD語音模塊RXD --> USB模塊TXD語音模塊GND --> USB模塊GND語音模塊3V3 --> USB模塊3V3(此端為3.3V電源供電端。)④將模塊的開關(guān)撥到“A”端,最好再按一次上面的大按鈕(按一次即可,為了確保模塊工作在正確的模式)。⑤對(duì)著模塊說“開燈”、“關(guān)燈”模塊會(huì)返回“0B”、“0A”,表示正常(注意:0B對(duì)應(yīng)返回值010,0B對(duì)應(yīng)返回值010,返回是16進(jìn)制顯示的嘛,設(shè)置的時(shí)候是10進(jìn)制設(shè)置的)。

    標(biāo)簽: ASR M08-B

    上傳時(shí)間: 2022-07-06

    上傳用戶:aben

  • 數(shù)字運(yùn)算

    數(shù)字運(yùn)算,判斷一個(gè)數(shù)是否接近素?cái)?shù) A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value. Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not. Input Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone. Output For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise. Sample Input 10 111 2 110 10 123 6 1000 8 2314 0 Sample Output yes yes no yes no

    標(biāo)簽: 數(shù)字 運(yùn)算

    上傳時(shí)間: 2015-05-21

    上傳用戶:daguda

  • J2EE高校學(xué)籍管理信息系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn) 本文中的學(xué)籍信息管理系統(tǒng)將 Mvc 以ModelViewControl) 模式和J2EE相結(jié)合

    J2EE高校學(xué)籍管理信息系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn) 本文中的學(xué)籍信息管理系統(tǒng)將 Mvc 以ModelViewControl) 模式和J2EE相結(jié)合,使界面與業(yè)務(wù)邏輯徹底分離,在系統(tǒng)架構(gòu)中各司其職、互不干涉,具有較強(qiáng)的伸縮性、 通用性和可操作性。 文中用統(tǒng)一建模語言UML對(duì)系統(tǒng)進(jìn)行詳細(xì)分析,并給出了系統(tǒng)的具體設(shè)計(jì), 包括系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫 設(shè)計(jì)、信息安全訪問設(shè)計(jì)等。 此外,本文還著重描述了系統(tǒng)實(shí)現(xiàn)過程中的一些關(guān)鍵技術(shù), 包括在系統(tǒng)數(shù)據(jù)訪問,實(shí) 現(xiàn)的 相關(guān)技術(shù)( 如 數(shù)據(jù)庫連接池技術(shù)) 以 及加密技術(shù)等。 系統(tǒng)采用基于J ZE E 多層結(jié)構(gòu),各項(xiàng)應(yīng)用均在We b上展開,通過We b方式完成用 戶與系統(tǒng)的交互。瀏覽器層為用戶提供可視化圖形界面 We b服務(wù)層響應(yīng)客戶請(qǐng)求,為 客戶提供所請(qǐng)求的數(shù)據(jù) 應(yīng)用服務(wù)層進(jìn)行應(yīng)用邏輯計(jì)算,完成瀏覽器請(qǐng)求的相應(yīng)的商業(yè) 計(jì)算和業(yè)務(wù)數(shù)據(jù)操作 數(shù)據(jù)庫層存儲(chǔ)、管理數(shù)據(jù)信息。采用多層結(jié)構(gòu)的方式使得系統(tǒng)具 有很強(qiáng)的伸縮性、通用性、兼容性和可操作性,每一層能夠?qū)W⒂谔囟ǖ慕巧凸δ堋? 系統(tǒng)的實(shí)現(xiàn)中采用J a va 的加密技術(shù)完成用戶信息的加密、 認(rèn)證功能 采用數(shù)據(jù)庫連接池 技術(shù)提高系統(tǒng)的數(shù)據(jù)庫訪問效率等。

    標(biāo)簽: J2EE ModelViewControl Mvc 管理信息系統(tǒng)

    上傳時(shí)間: 2016-06-01

    上傳用戶:離殤

  • 簡易負(fù)離子發(fā)生器的制作

      簡易負(fù)離子發(fā)生器負(fù)離子增加,對(duì)人有催眠、止汗、鎮(zhèn)痛、增進(jìn)食欲,使人精神爽快,消除疲勞的作用。圖1是負(fù)離子發(fā)生器電路圖。220V交流市電經(jīng)D1整流后向C3和C2充電,當(dāng)C2充電至氖泡導(dǎo)通并觸發(fā)SCR導(dǎo)通時(shí),C3經(jīng)SCR、B的L1放電,經(jīng)B感應(yīng)升壓后,由D2反向整流得8kV直流高壓使發(fā)生器M的分子電離而產(chǎn)生負(fù)離子。調(diào)整R3的阻值可以改變觸發(fā)頻率和輸出電壓。調(diào)整時(shí)必須注意安全,更換元件需撥下電源插頭

    標(biāo)簽: 負(fù)離子發(fā)生器

    上傳時(shí)間: 2013-10-29

    上傳用戶:731140412

  • TLC2543 中文資料

    TLC2543是TI公司的12位串行模數(shù)轉(zhuǎn)換器,使用開關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。 TLC2543的特點(diǎn) (1)12位分辯率A/D轉(zhuǎn)換器; (2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間; (3)11個(gè)模擬輸入通道; (4)3路內(nèi)置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉(zhuǎn)換結(jié)束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導(dǎo); (10)可編程輸出數(shù)據(jù)長度。 TLC2543的引腳排列及說明    TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double  sum_final1; double  sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe};  void delay(unsigned char b)   //50us {           unsigned char a;           for(;b>0;b--)                     for(a=22;a>0;a--); }  void display(uchar a,uchar b,uchar c,uchar d) {    P0=duan[a]|0x80;    P2=wei[0];    delay(5);    P2=0xff;    P0=duan[b];    P2=wei[1];    delay(5);   P2=0xff;   P0=duan[c];   P2=wei[2];   delay(5);   P2=0xff;   P0=duan[d];   P2=wei[3];   delay(5);   P2=0xff;   } uint read(uchar port) {   uchar  i,al=0,ah=0;   unsigned long ad;   clock=0;   _cs=0;   port<<=4;   for(i=0;i<4;i++)  {    d_in=port&0x80;    clock=1;    clock=0;    port<<=1;  }   d_in=0;   for(i=0;i<8;i++)  {    clock=1;    clock=0;  }   _cs=1;   delay(5);   _cs=0;   for(i=0;i<4;i++)  {    clock=1;    ah<<=1;    if(d_out)ah|=0x01;    clock=0; }   for(i=0;i<8;i++)  {    clock=1;    al<<=1;    if(d_out) al|=0x01;    clock=0;  }   _cs=1;   ad=(uint)ah;   ad<<=8;   ad|=al;   return(ad); }  void main()  {   uchar j;   sum=0;sum1=0;   sum_final=0;   sum_final1=0;    while(1)  {              for(j=0;j<128;j++)          {             sum1+=read(1);             display(a1,b1,c1,d1);           }            sum=sum1/128;            sum1=0;            sum_final1=(sum/4095)*5;            sum_final=sum_final1*1000;            a1=(int)sum_final/1000;            b1=(int)sum_final%1000/100;            c1=(int)sum_final%1000%100/10;            d1=(int)sum_final%10;            display(a1,b1,c1,d1);           }         } 

    標(biāo)簽: 2543 TLC

    上傳時(shí)間: 2013-11-19

    上傳用戶:shen1230

  • 驅(qū)動(dòng)程序與應(yīng)用程序的接口

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個(gè)符號(hào)鏈;2. 通過輸出到一個(gè)接口WDM驅(qū)動(dòng)程序建議使用輸出到一個(gè)接口而不推薦使用創(chuàng)建符號(hào)鏈的方法。這個(gè)接口保證PDO的安全,也保證安全地創(chuàng)建一個(gè)惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個(gè)應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個(gè)Win32 APIs和設(shè)備對(duì)象的分發(fā)函數(shù)之間存在一個(gè)映射關(guān)系。獲得對(duì)設(shè)備對(duì)象訪問的第一步就是打開一個(gè)設(shè)備對(duì)象的句柄。 用符號(hào)鏈打開一個(gè)設(shè)備的句柄為了打開一個(gè)設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個(gè)符號(hào)鏈出口,應(yīng)用程序可以用下面這個(gè)例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個(gè)設(shè)備。這個(gè)設(shè)備必須有一個(gè)符號(hào)鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個(gè)參數(shù)中前綴后的部分就是這個(gè)符號(hào)鏈的名字。注意:CreatFile中的第一個(gè)參數(shù)不是Windows 98/2000中驅(qū)動(dòng)程序(.sys文件)的路徑。是到設(shè)備對(duì)象的符號(hào)鏈。如果使用DriverWizard產(chǎn)生驅(qū)動(dòng)程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號(hào)鏈。這意味著符號(hào)鏈名有一個(gè)附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個(gè)參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個(gè)輸出接口打開句柄用這種方式打開一個(gè)句柄會(huì)稍微麻煩一些。DriverWorks庫提供兩個(gè)助手類來使獲得對(duì)該接口的訪問容易一些,這兩個(gè)類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個(gè)設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個(gè)實(shí)例來獲得一個(gè)或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個(gè)單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個(gè)路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個(gè)小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個(gè)有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對(duì)象的IRPs。下面的表顯示了這種對(duì)應(yīng)關(guān)系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個(gè)新的文件對(duì)象。這使得多個(gè)句柄可以映射同一個(gè)文件對(duì)象。當(dāng)這個(gè)文件對(duì)象的最后一個(gè)用戶級(jí)句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級(jí)和核心級(jí)的對(duì)文件對(duì)象的訪問的時(shí)候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯(cuò)誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會(huì)在打開設(shè)備的時(shí)候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個(gè)屬性,因?yàn)樗鼘?dǎo)致沒有特權(quán)的用戶企圖打開這個(gè)設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對(duì)象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲(chǔ)器中,并且創(chuàng)建了一個(gè)存儲(chǔ)在IRP中的MDL域。一個(gè)設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對(duì)象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對(duì)應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲(chǔ)區(qū)并沒有被鎖住而且地址只對(duì)調(diào)用進(jìn)程有效。驅(qū)動(dòng)程序可以使用KIrp::UserBuffer來存取IRP域。對(duì)于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對(duì)象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個(gè)宏的其中一個(gè)參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對(duì)應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個(gè)單一的緩沖來作為輸入與輸出。驅(qū)動(dòng)程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動(dòng)程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時(shí),I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級(jí)調(diào)用者使用的緩沖中。驅(qū)動(dòng)程序必須在結(jié)束前存儲(chǔ)拷貝到IRP的Information成員中的數(shù)據(jù)個(gè)數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個(gè)系統(tǒng)緩沖,這個(gè)緩沖驅(qū)動(dòng)程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對(duì)象,驅(qū)動(dòng)程序?qū)@個(gè)對(duì)象的訪問通過調(diào)用KIrp::Mdl來實(shí)現(xiàn)。對(duì)于METHOD_OUT_DIRECT,調(diào)用者必須有對(duì)緩沖的寫訪問權(quán)限。注意,對(duì)METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會(huì)做映射來配置緩沖。虛擬地址只對(duì)調(diào)用進(jìn)程有效。這里是一個(gè)用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個(gè)IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個(gè)DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,這里放的是包含有執(zhí)行操作命令的字符串指針  0, FirmwareRev,      //這里是output串指針,存放從驅(qū)動(dòng)程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動(dòng)程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    標(biāo)簽: 驅(qū)動(dòng)程序 應(yīng)用程序 接口

    上傳時(shí)間: 2013-10-17

    上傳用戶:gai928943

主站蜘蛛池模板: 中山市| 阿勒泰市| 甘洛县| 确山县| 宜州市| 含山县| 吉安市| 应城市| 公安县| 松滋市| 苍南县| 北京市| 宿迁市| 台南市| 浦县| 深州市| 曲阜市| 北碚区| 合肥市| 策勒县| 乐东| 永登县| 东至县| 界首市| 黑水县| 丰台区| 苗栗县| 昭通市| 兴业县| 花莲县| 乌兰浩特市| 霞浦县| 南昌市| 大竹县| 耿马| 玉环县| 汕头市| 临沂市| 太仆寺旗| 黄冈市| 长葛市|