我遇到了我必须模拟WinAPI调用的情况,并且遇到一些困难我能够在HippoMocks中使用C函数模拟。
1)我发现Assembla上的HippoMocks存储库没有C函数模拟。我能够从github在存储库中找到它。
2)我无法模拟具有用户定义输出参数的函数。作为一个例子,我尝试了一个简单的WinAPI函数 - GetSystemTime,它不会返回任何内容。相反,它采用LPSYSTEMTIME类型的输出参数。当我尝试模拟此函数时,我看到以下类型的错误:
error C2679: binary '=' : no operator found which takes a right-hand operand of type '_SYSTEMTIME *' (or there is no acceptable conversion)
问题似乎是模拟框架抱怨SYSTEMTIME类型的对象没有赋值运算符这一事实。如何解决这个问题?
注1:我已经成功地使用简单的参数/返回值来模拟WinAPI函数。
答案 0 :(得分:0)
现在应该可以了。我不完全确定你是如何得到那个确切的错误的;如果参数是LPSYSTEMTIME,它将永远不会尝试取消引用它。你能用当前版本重现这个错误吗?