-1
私の問題は、関数ポインタからメンバ関数への変換が無効です。 coap_handlerメンバ関数が静的であれば、問題はありません。 CoapClientのインスタンスは、静的でグローバルにすることはできません。私はcoap_handler()から静的を削除したい。それを作る方法? mg_event_handler_t
メンバー関数への変換関数ポインタの無効化
コールバック関数(イベントハンドラ)のプロトタイプのおかげ
class CoapClient{
...
void connect(){
mg_connect(&mgr, address.c_str(), coap_handler);
}
static void coap_handler(struct mg_connection *nc, int ev, void *p) {
...
}
};
//////署名mg_connect function
struct mg_connection *mg_connect(struct mg_mgr *mgr, const char *address,
mg_event_handler_t callback);
//////署名。ユーザーが定義する必要があります。 Mongooseは、以下で定義されたイベントを渡してイベントハンドラを呼び出します。
typedef void (*mg_event_handler_t)(struct mg_connection *, int ev, void *);
できませんか?メンバ関数ポインタは、それらをactullyと呼ぶインスタンスを持つ必要があります。 –
connectメソッドは、CoapClientクラスのコンストラクタで呼び出されます。 –
あなたの問題を実際に示す[MCVE]を投稿してください。 –