0

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

Win32
Linux
Mac OS X"

但是,有人在 Win CE 环境下尝试过吗?

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

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

DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask );

等等

4

2 回答 2

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 桌面编译 UnitTest++ 并在那里运行你的 UnitTest

我希望这会有所帮助。

于 2013-09-24T07:34:07.070 回答
0

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

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

于 2013-09-25T10:54:09.453 回答