我正在使用Visual Studio 2019,并且正在使用库加载字体数据(请参见此处:https://github.com/kv01/ttf-parser)。我收到一条错误消息,说我的函数看起来像我的函数没有正确的参数类型。我已经定义了要在.cpp文件中定义的实现内容 感谢您的任何提前帮助
Visual Studio错误:
E0167 argument of type "void (KDG_PhotoEditor::Layer::*)(void *args, void *font_data, int error)" is incompatible with parameter of type "TTFFontParser::TTF_FONT_PARSER_CALLBACK" KDG_PhotoEditor C:\Users\Kieran\Desktop\C++\KDG_PhotoEditor\KDG_PhotoEditor\layer.cpp 251
调用需要回调的函数的函数:
void Layer::add_text(string text, Font font, int x, int y){
string full_path=FONT_BASE_PATH;
full_path.append(font.name);
full_path.append(".ttf");
FontData font_data;
uint8_t condition_variable=0;
int8_t error=parse_file(full_path.c_str(), &font_data, &font_parsed, &condition_variable);
while(!condition_variable){
this_thread::sleep_for(chrono::milliseconds(1));
}
if(error){
return;
}
FontData* font_data=(FontData*)current_parsed_font.font_data;
current_parsed_font={};
}
回调函数:
void Layer::font_parsed(void* args, void* font_data, int error){
current_parsed_font={args, font_data, error};
}
库使用的回调函数的定义
typedef void(*TTF_FONT_PARSER_CALLBACK)(void*, void*, int);