用overload的类成员函数如何作为的callback的函数指针传递?

xiaolie 2003-03-04 10:45:10
请问如何用overload的类成员函数如何作为的callback的函数指针传递?如何引用类成员函数的函数指针呢?如果有overload又如何用指针分别不同的函数呢?下边是我的出错代码。马上给分。
.h
#pragma once
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
class CDemoApp : public CWinApp
{
public:
CDemoApp();
// Overrides
public:
virtual BOOL InitInstance();

DECLARE_MESSAGE_MAP()
// //hook the mouse event for right click
LRESULT CALLBACK MouseHook(int code, WPARAM wParam, LPARAM lParam);
HHOOK hHook;
};
当我调用
hHook = SetWindowsHookEx (WH_MOUSE, (HOOKPROC) MouseHook, this->m_hInstance, 0);
时,编译报错:Demo.cpp(51): error C2440: “类型转换” : 无法从“overloaded-function”转换为“HOOKPROC”
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
demetry 2003-03-04
  • 打赏
  • 举报
回复
方法很多,还可以把类的指针传送到回调函数中。

不过回调函数应该声明为static或者是全局外部函数
lwg7603 2003-03-04
  • 打赏
  • 举报
回复
在回调函数中用类成员变量?在MouseHook中用AfxGetApp不就搞定了~~
xiaolie 2003-03-04
  • 打赏
  • 举报
回复
可是我需要在回调函数中用类成员变量,不能用static
lwg7603 2003-03-04
  • 打赏
  • 举报
回复
static LRESULT CALLBACK MouseHook(int code, WPARAM wParam, LPARAM lParam);

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧