首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cmock模拟作为windows回调的函数

使用cmock模拟作为windows回调的函数
EN

Stack Overflow用户
提问于 2018-01-17 02:44:24
回答 1查看 482关注 0票数 0

在我创建了一个C函数作为回调传递给另一个库的情况下,我遇到了一个问题,所以它使用回调表示法。这是在使用VS2015。

VOID回调TheCallback(void)

我正在使用unity和cmock对一些代码进行单元测试,并且我正在尝试模拟回调。

因此,当cmock脚本创建所有mock (mock头文件)时,它会创建如下代码行:

void TheCallback_CMockIgnoreAndReturn(UNITY_LINE_TYPE cmock_line,VOID CALLBACK cmock_to_return);

(注意其中的回调一词)

当我编译的时候,我会得到这样的警告和错误:

警告C4229:使用的时间错误:忽略数据上的修饰符

错误返回:‘cmock_to_C2182’:非法使用类型'void‘

这似乎与卡在中间的回调有关。

关于如何将其声明为回调而不让VS2015抱怨ignore and return模拟的函数原型中的类型,有什么想法吗?

我在想,在单元测试时,是否需要以某种方式取消定义回调,甚至不确定是否可以

任何想法都会很棒..谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-01-19 05:27:38

为此,可以将回调添加到"c ++调用约定“列表中。

代码语言:javascript
复制
:cmock:
    :c_calling_conventions:
        - CALLBACK

或者在cmock_config.rb中,添加回调::

代码语言:javascript
复制
:c_calling_conventions       => ['__stdcall', '__cdecl', '__fastcall', 'CALLBACK'],
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48287885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档