0

我是 Marmalade 的新手,正在尝试处理不寻常的格式等问题,并且正在努力了解为什么它不断抛出错误。

我试图让它显示我定义的 UI,可能不正确,但至少以正确的格式。然而我不断得到:

“错误:没有匹配函数调用'CIwUISlot1 >::CIwUISlot1(CController* const, const char [23], void (CController::*)())'”

我无法解决,我已经看到它可能是由传递的变量不正确引起的,但据我所知,它们是正确的。这是来自 IwUIElementSignal.h 的代码:

#define IW_UI_CREATE_VIEW_SLOT1(Owner, Name, Class, Member, Param1) {       \
IDelegateQuery* pSlot =                                                     \
new CIwUISlot1<Class, Param1>(Owner, #Member, &Class::Member);              \
IwGetUIView()->AddDelegate(IwHashString(#Class), IwHashString(Name), pSlot); }

从 Main.cpp 调用如下:

class CController : public CIwUIController
{
public:
    CController()
    {
        IW_UI_CREATE_VIEW_SLOT1(this, "CController", CController, OnClickButton_Quotes, CIwUIElement*)
        IW_UI_CREATE_VIEW_SLOT1(this, "CController", CController, OnClickButton_Targets, CIwUIElement*)
        IW_UI_CREATE_VIEW_SLOT1(this, "CController", CController, OnClickButton_Add_Entry, CIwUIElement*)
        IW_UI_CREATE_VIEW_SLOT1(this, "CController", CController, OnClickButton_Backup, CIwUIElement*)
        IW_UI_CREATE_VIEW_SLOT1(this, "CController", CController, OnClickButton_Clock, CIwUIElement*)
        IW_UI_CREATE_VIEW_SLOT1(this, "CController", CController, OnClickButton_Postit_1, CIwUIElement*)
    }

private:
    void OnClickButton_Quotes()
    {

}
void OnClickButton_Targets()
{

}
void OnClickButton_Add_Event()
{

}
void OnClickButton_Clock()
{

}
void OnClickButton_Backup()
{

}
void OnClickButton_Postit_1()
{

}
};

这尤其令人困惑,因为它或多或少地从 Marmalade SDK 附带的 IwUI 示例中复制和粘贴...

请您在回复中详细说明,因为我不仅是 Marmalade 的新手,也是 C++ 的新手。

干杯

4

1 回答 1

0

所有的事件处理函数都应该以 CIwUIElement* 作为它们的参数。所以函数声明应该如下:

void OnClickButton_Quotes(CIwUIElement*)
{

}

void OnClickButton_Targets(CIwUIElement*)
{

}

... ETC

于 2014-05-28T13:41:42.870 回答