liuyan5462010 2018-01-18 03:36 采纳率: 0%
浏览 899
已结题

如何取带作用域的函数地址

我写的一个C++的MFC程序,如下图:PageEndProc这个函数会作为一个回调函数传入funcAplIFEntryEventFunc这个函数,我再头文件里声明了一个事件PostScanEveryPage,需要在回调时触发这个事件。但是因为PageEndProc这个没加作用域限制符CPnScanOCXCtrl::导致调用PostScanEveryPage会提示为定义标识符;如果加上这个标识符,在传入funcAplIFEntryEventFunc会提示转换无效。不知道怎么做才是对的。
图片说明
// For Tool Kit
long _stdcall PageEndProc(SCAN_PAGEINFO* pPage)
{
//char str[260];
//memset(&str, 0x00, sizeof(str));
//long err = 0;
//if(funcAplIFGetOrgFileName){
// funcAplIFGetOrgFileName(str, &err);
//}

gPageCnt++;
PostScanEveryPage(gPageCnt);
return 0;

}

LONG CPnScanOCXCtrl::Scan(LONG nXferCount, LONG bAsync)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加调度处理程序代码

long sts;
long errNo;

if (!funcAplIFEntryEventFunc) {
    return 0;
}
if (!funcAplIFScanExec) {
    return 0;
}
// set event function
sts = funcAplIFEntryEventFunc((long)PageEndProc, NULL, &errNo);

图片说明

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-01-18 03:43
    关注

    你这个不是函数作用域,而是成员函数。
    成员函数的函数原型末尾有一个CPnScanOCXCtrl * this的隐含参数。加上去就匹配了。

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?