2013-09-24 17 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

相关问题