我正在尝试使用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