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

时间:2013-09-24 07:13:41

标签: c++ visual-studio-2005 windows-ce

UnitTest ++库直接指出:  “支持以下平台:

Win32
Linux
Mac OS X"

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

我收到与Win API相关的各种编译器错误。 e.g。

BOOL GetProcessAffinityMask(   处理hProcess,   PDWORD_PTR lpProcessAffinityMask,   PDWORD_PTR lpSystemAffinityMask );

DWORD_PTR SetThreadAffinityMask(   处理hThread,   DWORD_PTR dwThreadAffinityMask );

2 个答案:

答案 0 :(得分: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

我希望有所帮助。

答案 1 :(得分:0)

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

现在,在执行测试时,我们遇到了另一个问题,即printf函数在WinCE终端上没有输出。所以我们用OutputDebugString()替换了所有printf函数,并且能够执行测试并在终端上查看结果,如PuTTY。然而,时间测试不再适用,这对我们来说不是现在的要求。