带Mosquitto库的回调函数转换错误

时间:2018-07-02 08:47:48

标签: member-function-pointers

我正在尝试使用LibMosquitto实现MQTT协议的功能。

我有一个名为 mosquitto_message_callback_set()

的方法

定义如下

libmosq_EXPORT void mosquitto_message_callback_set(struct mosquitto *mosq, void (*on_message)(struct mosquitto *, void *, const struct mosquitto_message *));

我的ConfigManager类中有一个方法,其签名为:

void ConfigManager::on_message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message)

当我尝试如下使用函数指针设置回调时:

mosquitto_message_callback_set(mosq,on_message_callback);

其中mosq是struct mosquitto * mosq

我收到此编译错误:

  

C:\ Users \ Marco \ Desktop \ tesitirocinio \ xyz \ dev \ xyz \ libs \ configManager \ configmanager.cpp:48:错误:无法从'void(ConfigManager::)类型转换'ConfigManager :: on_message_callback' mosquitto *,void *,const mosquitto_message *)'来输入“ void *”          mosquitto_message_callback_set(mosq,on_message_callback);                                                                 ^

我无法修改Mosquitto库,因为我只编译了.lib。

我该怎么办?

这是带有示例的参考 libmosquitto example

0 个答案:

没有答案