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

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

cout

  • out< "please input the number of the nodes"<<endl cin>>nodesNum cout<<"pl

    out< "please input the number of the nodes"<<endl cin>>nodesNum cout<<"please input the graph"<<endl for( i = 1 i<=nodesNum i++) for( j = 1 j <= nodesNum j++) cin>>graph[i][j] */

    標簽: lt the nodesNum number

    上傳時間: 2013-11-29

    上傳用戶:libinxny

  • VC primer protype in iostream cout

    VC primer protype in iostream cout

    標簽: iostream protype primer cout

    上傳時間: 2014-11-27

    上傳用戶:D&L37

  • 利用LMP的20bit counter,比自帶的cout進位要快的多。已經(jīng)同錯綜合和時序仿真。

    利用LMP的20bit counter,比自帶的cout進位要快的多。已經(jīng)同錯綜合和時序仿真。

    標簽: counter cout LMP bit

    上傳時間: 2016-11-11

    上傳用戶:1101055045

  • verilog code 4-bit carry look-ahead adder output [3:0] s //summation output cout //carryout inpu

    verilog code 4-bit carry look-ahead adder output [3:0] s //summation output cout //carryout input [3:0] i1 //input1 input [3:0] i2 //input2 input c0 //前一級進位

    標簽: output look-ahead summation carryout

    上傳時間: 2017-01-07

    上傳用戶:yyq123456789

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

    有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個符號鏈;2. 通過輸出到一個接口WDM驅(qū)動程序建議使用輸出到一個接口而不推薦使用創(chuàng)建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創(chuàng)建一個惟一的、獨立于語言的訪問設(shè)備的方法。一個應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個Win32 APIs和設(shè)備對象的分發(fā)函數(shù)之間存在一個映射關(guān)系。獲得對設(shè)備對象訪問的第一步就是打開一個設(shè)備對象的句柄。 用符號鏈打開一個設(shè)備的句柄為了打開一個設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個符號鏈出口,應(yīng)用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個設(shè)備。這個設(shè)備必須有一個符號鏈,以便應(yīng)用程序能夠打開它。有關(guān)細節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個參數(shù)中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數(shù)不是Windows 98/2000中驅(qū)動程序(.sys文件)的路徑。是到設(shè)備對象的符號鏈。如果使用DriverWizard產(chǎn)生驅(qū)動程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號鏈。這意味著符號鏈名有一個附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個實例來獲得一個或更多的CdeviceInterface類的實例。CdeviceInterface類是一個單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個小例子來顯示這些類最基本的使用方法: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)用程序獲得一個有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對象的IRPs。下面的表顯示了這種對應(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)建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調(diào)用CleanUp。當沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會在打開設(shè)備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因為它將導致沒有特權(quán)的用戶企圖打開這個設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對象的屬性。當設(shè)備設(shè)置DO_DIRECT_IO標志,I/O管理器將buff鎖住在存儲器中,并且創(chuàng)建了一個存儲在IRP中的MDL域。一個設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當設(shè)備設(shè)置DO_BUFFERED_IO標志,設(shè)備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當設(shè)備不設(shè)置DO_BUFFERED_IO標志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲區(qū)并沒有被鎖住而且地址只對調(diào)用進程有效。驅(qū)動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個宏的其中一個參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應(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)分配一個單一的緩沖來作為輸入與輸出。驅(qū)動程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級調(diào)用者使用的緩沖中。驅(qū)動程序必須在結(jié)束前存儲拷貝到IRP的Information成員中的數(shù)據(jù)個數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個系統(tǒng)緩沖,這個緩沖驅(qū)動程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對象,驅(qū)動程序?qū)@個對象的訪問通過調(diào)用KIrp::Mdl來實現(xiàn)。對于METHOD_OUT_DIRECT,調(diào)用者必須有對緩沖的寫訪問權(quán)限。注意,對METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調(diào)用進程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個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ū)動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動程序中,代碼看起來如下所示: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 . . .   } }

    標簽: 驅(qū)動程序 應(yīng)用程序 接口

    上傳時間: 2013-10-17

    上傳用戶:gai928943

  • 數(shù)據(jù)抽象(使用類和對象設(shè)計回應(yīng)程序) 實驗內(nèi)容描述: 1. 測試程序 假設(shè)類名為Welcome

    數(shù)據(jù)抽象(使用類和對象設(shè)計回應(yīng)程序) 實驗內(nèi)容描述: 1. 測試程序 假設(shè)類名為Welcome,測試程序如下: void main() { Welcome we Welcome you(we) you.Display() you.Set(“Thank you.”) cout<<you.Get()<<endl you.talk() you.Display() }

    標簽: Welcome 數(shù)據(jù) 抽象 對象

    上傳時間: 2015-08-27

    上傳用戶:ommshaggar

  • 平時寫程序時經(jīng)常要記錄下日志

    平時寫程序時經(jīng)常要記錄下日志,C++的cout類很好用吧,呵呵, 以前寫了個類似的類 來記錄下程序的運行日志

    標簽: 程序 日志 記錄

    上傳時間: 2015-11-11

    上傳用戶:GHF

  • 1設(shè)計題目及要求 一、程序設(shè)計題目:學生成績管理程序設(shè)計 二、 程序設(shè)計功能及要求: 1.顯示學生各門成績,總分,和平均分. 2.按總分由高到的進行排列. 3.要求輸入一個學號.要求能找出一

    1設(shè)計題目及要求 一、程序設(shè)計題目:學生成績管理程序設(shè)計 二、 程序設(shè)計功能及要求: 1.顯示學生各門成績,總分,和平均分. 2.按總分由高到的進行排列. 3.要求輸入一個學號.要求能找出一個學生的.姓名.各門功課的成績. 3 算法分析 1. 學生成績管理軟件的數(shù)據(jù)結(jié)構(gòu) 2. 排序 3. 查找 4. 其它 4 主要流程圖 1寫程序結(jié)構(gòu)及各模塊(輸入,顯示等等)結(jié)構(gòu)圖 本程序用了c++語言里面的思想,比如用了cin 和 cout 函數(shù).分了倆個類.一個是File類.一個是Link類. File類里面主要的是用于保存和導入數(shù)據(jù). Link類主要是用于鏈表的操作…. 本程序分為幾個文件編寫有.file.cpp文件和file.h文件 Link.cpp文件和Link.h文件 manager..cpp文件和manager.h文件. 本程序的主體結(jié)構(gòu)是鏈表.用鏈表操作.實現(xiàn)動態(tài)創(chuàng)建和銷毀. 主函數(shù)main().是在Manger.cpp 里面.是程序的入口處 File.cpp 和 link.cpp 是存放file類.和 link類的源函數(shù)變量代碼. File.h 和Link.h 是存放file 類 和link 類的聲明

    標簽: 程序設(shè)計 程序 設(shè)計功能

    上傳時間: 2014-01-17

    上傳用戶:古谷仁美

  • #include<iostream> using namespace std int main() { unsigned long x,warcraft,war,l

    #include<iostream> using namespace std int main() { unsigned long x,warcraft,war,l cin> x while(x) { unsigned long *p=new unsigned long[x+1] if(p==NULL) { cerr<<"error!"<<endl abort() } for(warcraft=0 warcraft<=x warcraft++) *(p+warcraft)=0 *p=1 for(warcraft=0 warcraft<x warcraft++) { cout<<*p<<" " war=*p for(l=1 x>1 l++) { if(*(p+l)==0) { cout<<endl *(p+l)=1 break } else { cout<<*(p+l)<<" " *(p+l)=war+*(p+l) war=*(p+l)-war } } } cout<<endl delete [] p cin>>x } return 0 }

    標簽: namespace iostream unsigned warcraft

    上傳時間: 2015-12-12

    上傳用戶:manlian

  • C++名家精華.chm 我們用早期的C++語言編程。工作的第二天中午

    C++名家精華.chm 我們用早期的C++語言編程。工作的第二天中午,厭煩了讀職工手冊,于是我寫了一個工具類,里面包含一個原始指針作為成員變量: #include "xStruct.h" // definition of struct X class xWrapper { X* xItem public: xWrapper() : xItem(new X) { } ~xWrapper() { delete xItem } void dump() { /* dumps xItem to cout */ } } 當然了,使用這個類的程序由于內(nèi)存問題總是時不時的崩潰,因為我違反三個重要設(shè)計原則之一:任何時候,只要你提供了析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)或賦值運算符中的一個,你通常需要三個都提供。([1]) “所以,”我自言自語道,“我必須自己處理拷貝和賦值問題。簡單地...auto_ptr有拷貝構(gòu)造函數(shù)和賦值運算符,我可以拿過來用一下。”(你知道早期C++程序庫中的auto_ptr,是嗎?)

    標簽: chm 語言編程

    上傳時間: 2013-12-28

    上傳用戶:Amygdala

主站蜘蛛池模板: 达孜县| 宁波市| 凤翔县| 凤冈县| 江永县| 吐鲁番市| 璧山县| 乌鲁木齐市| 八宿县| 天台县| 新乡市| 洪湖市| 昌黎县| 合川市| 昭通市| 肥城市| 武城县| 叙永县| 从化市| 辽阳市| 建昌县| 外汇| 简阳市| 阿图什市| 无锡市| 中西区| 信阳市| 洪湖市| 安溪县| 睢宁县| 霍州市| 深州市| 疏勒县| 靖西县| 三河市| 开化县| 长宁区| 云和县| 迭部县| 福清市| 巴彦县|