error C2664: 'cvSetMouseCallback' : cannot convert parameter 2 from 'void (__cdecl *)(int,int,int,int)' to 'CvMouseCallback' 的解决

来源:互联网 发布:广州云计算 编辑:程序博客网 时间:2024/05/16 23:56

正如上文中提到的,在mfc中,cvSetMouseCallback()函数总是会提示如标题的错误提示,在查阅了网页和参考书,解决方法,如下:

    在头文件中,将要调用的函数:on_mouse声明为静态成员函数

 
01.static void on_mouse(int event, int x, int y, int flags, void *param);  
   在on_mouse()函数中添加如下代码:

   如果在on_mouse()中调用其他方法,需用定义的temp指针来调用

 
01.CMotionTraceDlg *temp = (CMotionTraceDlg*)param;  
02./////////////////////////////////////////////  
03.temp->MessageBox("on_mouse", MB_OK);  
 自此,程序可以顺利运行

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yeqiu712/archive/2011/03/14/6247651.aspx