我在代码中遇到错误(代码不是我的,它刚刚在其他网站上发布)
我收到此错误:
错误C2440:'=':无法从'char *(__ cdecl *)(int,int)'转换为'GetItemText_t'
以下是代码:
char* TheatreMenu_GetItemText(int index, int column)
{
if( index >= 0 && index < uiDemoInfo.numDemos)
{
switch(column)
{
case 0:
return uiDemoInfo.demos.at(index).demoName;
break;
case 1:
return UI_LocalizeMapName(uiDemoInfo.demos.at(index).mapName);
break;
}
}
return "";
}
void PatchMW2_TheatreMenu()
{
TheatreMenu_Feeder.feeder = 10.0f;
TheatreMenu_Feeder.GetItemCount = TheatreMenu_GetItemCount;
TheatreMenu_Feeder.GetItemText = TheatreMenu_GetItemText;
TheatreMenu_Feeder.Select = TheatreMenu_Select;
UIFeeders.push_back(TheatreMenu_Feeder);
AddUIScript("loadDemos", TheatreMenu_UIScript_LoadDemos);
AddUIScript("FixDemoServer", TheatreMenu_UIScript_FixDemoServer);
AddUIScript("LaunchDemo", TheatreMenu_UIScript_LaunchDemo);
strcpy((char*)(0x6FB620), "oldrec");
strcpy((char*)(0x708238), "oldstoprec");
Cmd_AddCommand("record", customRecordFunc, &customRecord, 0);
Cmd_AddCommand("stoprecord", customStopRecordFunc, &customStopRecord, 0);
}
错误来自这一行:
TheatreMenu_Feeder.GetItemText = TheatreMenu_GetItemText;
我希望你能尽快帮助我 提前谢谢。
亲切, 克里斯
答案 0 :(得分:0)
TheatreMenu_GetItemText
是一个功能名称,我不确定TheatreMenu_Feeder.GetItemText
的类型,因为UIFeeder_t TheatreMenu_Feeder;
而您不支持UIFeeder_t
的定义
是什么造成这个错误?您可以查看UIFeeder_t.GetItemText
的定义。它与TheatreMenu_GetItemText
的定义相同吗?
char* TheatreMenu_GetItemText(int index, int column)
{
if( index >= 0 && index < uiDemoInfo.numDemos)
{
switch(column)
{
case 0:
return uiDemoInfo.demos.at(index).demoName;
break;
case 1:
return UI_LocalizeMapName(uiDemoInfo.demos.at(index).mapName);
break;
}
}
return "";
}
最后一行,我认为return NULL
可能更好。当然,如果这里改变了,一些相关的代码可能需要相应的更改