ref类中的指针到成员函数

时间:2013-03-25 23:49:07

标签: .net function pointers c++-cli member

我正在尝试使用自定义.NET ref类来控制按钮系统。它由添加到父窗体的类中的PictureBox组成。当它检测到单击时,它需要调用构造函数中指定的函数,该函数是父类中的方法。

例如:

//in the custom class file
public ref class CButton {
    private: void (*callingproc)(void);
    public:
    CButton(void (*cproc)(void)) {
        callingproc = cproc;
    }
    button_dowork() {
        //do our code to detect if the click was in the right place and call our proc
        callingproc();
    }
};
//in the form.h
void cp(void) {
    //do our form work
}
void Form_CreateCButton() {
    CButton^ t = gcnew CButtom(cp);
}

上面的内容会导致“use& ns :: form :: cp创建指向成员的指针”的错误,当我按照说明操作时,“指向成员的指针对托管类无效”。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

看起来你的类正在存储指向(全局)函数的指针。

也许你的void cp()函数在一个类(“form”?)中。在这种情况下,它实际上是一个成员函数。全局函数与成员函数不同,因此类不能存储指针。

也许您应该考虑代表(特别是如果您使用.Net)。看到: http://msdn.microsoft.com/en-us/library/ms379617(v=vs.80).aspx