【问题标题】:How to use UnitTest++ on Windows CE Environment?如何在 Windows CE 环境下使用 UnitTest++?
【发布时间】:2013-09-24 07:13:41
【问题描述】:

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

Win32
Linux
Mac OS X"

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

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

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

DWORD_PTR SetThreadAffinityMask( 处理 hThread, DWORD_PTR dwThreadAffinityMask );

等等

【问题讨论】:

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


    【解决方案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。那已经在我的盘子上了。选项 2. 发现 Google 测试框架支持 Win CE,但是现在不知道它以及在 VS2005 中使用它会有多复杂。 (我现在可能负担不起所需的努力)。选项 3。如果 1 和 2 不起作用,我们将不得不对此感到满意。 :) 我只是想知道是否有人已经这样做了,并且知道为 WinCE 修改 UnitTest++ 会有哪些挑战。谢谢!
    • UnitTest++ 中使用的所有(或大部分)Win32 API 都与计时器相关,如果我们使用预处理器指令(对于 Win CE 环境)忽略这些 API,它会成功编译。现在在执行测试时,我们遇到了另一个问题,即 printf 函数在 WinCE 终端上没有输出。因此,我们用 OutputDebugString() 替换了所有 printf 函数,并且能够在 PuTTY 等终端上执行测试并查看结果。但是时序测试不再起作用,这不是我们现在的要求。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-09-28
      • 2012-11-23
      • 1970-01-01
      • 2011-02-13
      • 2012-02-16
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多