如何在 Windows CE 环境中使用 UnitTest++

How to use UnitTest++ on Windows CE Environment?

本文关键字:UnitTest++ 环境 CE Windows      更新时间:2023-10-16

UnitTest++库直接声明: "支持以下平台:

Win32
Linux
Mac OS X"

但是,有没有人在Win CE环境中尝试过?

我收到与 Win API 相关的各种编译器错误,例如

BOOL GetProcessAffinityMask( 处理过程, PDWORD_PTR lpProcessAffinityMask, PDWORD_PTR lpSystemAffinityMask);

DWORD_PTR SetThreadAffinityMask( 手柄线程, DWORD_PTR dwThreadAffinityMask);

等。

所以你尝试使用Windows CE环境编译UnitTest++?

Windows CE与Win32不同。它仅支持 Windows Desktop API 的一个子集。因此,UnitTest++支持Win32的说法并不意味着它支持Windows CE。由于您提到的两个API函数仅在Window XP桌面API上可用(请参阅MSDN),因此UnitTest++的编译失败。

因此,您可能有一些选择:
- 修改UnitTest++以支持Windows CE(可能不可能)
- 使用另一个显式
支持 Windows CE 的单元测试框架- 为Windows桌面编译UnitTest++并在那里运行你的UnitTest

我希望这有所帮助。

UnitTest++ 中使用的所有(或大部分)Win32 API 都与计时器相关,如果我们使用预处理器指令(对于 Win CE 环境)忽略这些 API,它就会成功编译。

现在在执行测试时,我们遇到了另一个问题,即 printf 函数无法在 WinCE 终端上给出输出。因此,我们将所有printf函数替换为OutputDebugString(),并且能够在PuTTY等终端上执行测试并查看结果。然而,时序测试将不再起作用,这不是我们现在的要求。