驅動程式中使用CPPUnit

來源:互聯網
上載者:User
最近研究了一下如何將CPPUnit應用到驅動開發中,下面是一些實現步驟! 我的環境是WDK 6801,安裝在C:/WinDDK目錄下。IDE環境使用的是Visual Studio 2005。1. CPPUnit首先需要為WDK特別編譯一個版本,使用如下方式配置Visual Studio環境:   A. Visual Studio -> Tools -> Options -> Projects and Solutions -> VC++ Directories
     在Include files中添加如下列表,並將它們置頂:
     C:/WinDDK/6801.0/inc/api  <-將C:/WinDDK/6801.0替換成適當的路徑
     C:/WinDDK/6801.0/inc/crt
     C:/WinDDK/6801.0/inc/ddk
     C:/WinDDK/6801.0/inc/api/crt/stl60
   B. 在相同介面下Library files中加入下面的列表,也將它們置頂

     C:/WinDDK/6801.0/Lib/Crt/i386
     C:/WinDDK/6801.0/Lib/wnet/i386  <- Windows 2003使用 NOTE:使用這些設定,Visual Studio也可以用來編譯WDK驅動程式。   2.開啟cppunit工程,然後進行如下設定:   Project Properties -> C/C++ -> Advanced ->Calling Convention 設為 "__stdcall(/Gz)"
     *相應的,測試程式也要使用同樣的方式 WDK預設就是stdcall.
  
   Project Properties -> C/C++ -> Code Generation -> Runtime Library 設為 "Multi-threaded (/MT)"
     *注意此處的不同。它會決定後面所需要使用的靜態庫,詳細的內容可以Google下。 3. 編譯一份cppunit的Release版本。
   *最好將它拷貝起來,以和其它類型的cppunit庫區分開來。
   CPPUnit就算準備好了,現在開始建立一個測試工程。
4. 在sources檔案中設定如下:
  CPPUNITDIR=C:/project/cppunit  <- 指向CPPUnit的工作目錄
  TARGETNAME=UnitRunner <- 目標程式名稱
  TARGETPATH=obj 
  TARGETTYPE=PROGRAM
  UMTYPE=console
  UMENTRY=main
  USE_LIBCMT = 1  <- 我們使用的是/MT,所以這裡要使用LIBCMT, 不能使用MSVCRT (/MD)
  USE_STL=1  <- 我們需要使用STL,主要是CPPUnit引用的。
  STL_VER=60 <- 需要和VS中的STL版本保持一致。這裡是STL60
  C_DEFINES=$(C_DEFINES) /D_STL60_ 5. 將CPPUnit的路徑加入到INCLUDES中
  INCLUDES=$(DDK_INC_PATH);$(INCLUDES);$(CPPUNITDIR)/include; 6. 將cppunit庫加入到Library列表中:
  TARGETLIBS=$(TARGETLIBS) /
  ......
  $(CPPUNITDIR)/lib/WDK/cppunit.lib   *其它庫,視項目需要而定。
  
7. 確保源正件也正常時,開始編譯。*注意,因為我們只有編譯一個Release版本。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.