问题是这样的:你需要Ui::window在一个函数中访问一个类对象callback_function()。有信息可以将其作为参数传递给 callback_function 函数(void*)this。但我不知道该怎么做。(void*)this他不接受这种设计。我寻求帮助和摆脱这种情况的方法。
程序执行时:
1)调用A类的send_file()函数;
2) 在这个函数中,调用了 curl_easy_setopt() 系统函数,
其中最后一个参数是指向回调函数(callback_function)的指针
3)回调函数本身被调用(它包含一些必须立即显示在 Ui 中的数据: :window when execution)
4) 上面的类型代码中没有别名: typedef void (*str)(char *c) 不存在。仅在 A 类中定义;
class A
{
static void callback_function(void* ptr, size_t size, size_t nmemb, void* stream);
private:
Ui::Window ui;
}
void A::send_file() { curl_easy_setopt(curl, CURLOPT_READFUNCTION, callback_function); } //curl_easy_setopt системная функция
void A::callback_function(void* ptr, size_t size, size_t nmemb, void* stream) // функция обратного вызова в стиле языка "С"
{
//Как в этом месте получить доступ к не статическому объекту Ui::window в класса A?
}
更新为问题已得到澄清:
代码没有编译,但它应该像这样工作。关键是
userdata必须使用以下方法设置 in 的值: