2013-09-24 36 views
0

的單元測試++庫直接指出: 「的支持以下平臺:如何在Windows CE環境下使用UnitTest ++?

Win32 
Linux 
Mac OS X" 

但是,有沒有人嘗試過了在Win CE環境

我正在與運API的各種編譯器錯誤?例如

BOOL GetProcessAffinityMask( HANDLE hProcess, PDWORD_PTR lpProcessAffinityMask, PDWORD_PTR lpSystemAffinityMask );

DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask );

回答

0

UnitTest ++中使用的所有(或大部分)Win32 API都與計時器有關,如果我們忽略那些使用預處理器指令(對於Win CE環境)的API,它會成功編譯。

現在在執行測試時,我們遇到了另一個問題,即printf函數不會在WinCE終端上提供輸出。所以我們用OutputDebugString()替換了所有的printf函數,並且能夠執行測試並在PuTTY等終端上看到結果。然而,時間測試不再適用,這不是我們現在的要求。

1

因此,您嘗試使用Windows CE環境編譯UnitTest ++嗎?

Windows CE與Win32不同。它僅支持Windows桌面API的一個子集。因此,UnitTest ++支持Win32的聲明並不意味着它支持Windows CE。由於您提到的兩個API函數僅適用於Window XP桌面API(請參閱MSDN),因此UnitTest ++的編譯失敗。

所以,你可以有一些選擇:
- 修改的UnitTest ++支持Windows CE(也許是不可能的)
- 使用支持Windows CE的另一單元測試框架明確
- 編譯單元測試+ +的Windows桌面和運行單元測試有

我希望有幫助。

+0

謝謝您的建議!選項1.這已經在我的盤子上了。選項2.已經發現谷歌測試框架支持Win CE,但是現在不知道它在VS2005中使用它有多複雜。 (可能目前所需的努力對我來說是不負擔得起的)。選項3.如果1和2不起作用,我們將不得不滿足於此。 :)我只是想知道,如果有人已經這樣做,並知道所有的挑戰將有修改UnitTest ++的WinCE。謝謝! – Anurag

+0

UnitTest ++中使用的所有(或大部分)Win32 API都與計時器相關,如果我們忽略那些使用預處理器指令(對於Win CE環境)的API,它會成功編譯。 現在在執行測試時,我們遇到了另一個問題,即printf函數不會在WinCE終端上提供輸出。所以我們用OutputDebugString()替換了所有的printf函數,並且能夠執行測試並在PuTTY等終端上看到結果。然而,時間測試不再適用,這不是我們現在的要求。 – Anurag

相關問題