我正在尝试使用自定义.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创建指向成员的指针”的错误,当我按照说明操作时,“指向成员的指针对托管类无效”。有什么想法吗?
答案 0 :(得分:0)
看起来你的类正在存储指向(全局)函数的指针。
也许你的void cp()函数在一个类(“form”?)中。在这种情况下,它实际上是一个成员函数。全局函数与成员函数不同,因此类不能存储指针。
也许您应该考虑代表(特别是如果您使用.Net)。看到: http://msdn.microsoft.com/en-us/library/ms379617(v=vs.80).aspx