技巧总结:非静态成员函数的非法调用

最近为自己做个小工具,遇到的技术问题多多,还好有度娘帮衬,这才风雨飘摇的往目标慢慢接近,说起来那是步步惊心啊。

非法调用的问题,先看代码:

class 某党某师

{

public:

BOOL 清除卧底行动();

static BOOLCALLBACK 刺杀行动组();     // 隶属情报部门 CALLBACK,放这里是来某党某师执行任务的

void 爆破小队();

};


BOOL 某党某师::清除卧底行动()

{

return 情报部门行动(,,,刺杀行动组,,,);     //情报部门摸底排查,派出刺杀行动组   : 1号首长亲自指派情报部门来某党某师配合协助(调用系统API)

}


BOOL CALLBACK 某党某师::刺杀行动组()

{

爆破小队(); // 问题出来了,就是我们编译时会看到的:非静态成员函数的非法调用!

... ...

}

void 某党某师::爆破小队()

{

专业爆破;

}

------------------------------------------------------------------------------------------------------------------------------------------------

分析:

1. 刺杀行动组CALLBACK函数要么是全局的要么是类的静态函数,没有this(指针)的概念,眼里不认识啥地方部门的工作人员;

2.爆破小队隶属某党某师,他的一切行动都是this安排去执行的,在某党某师内行动,当然不需要时时表明身份:我是this的人;

结论:

这是信息沟通不全导致的误会,难怪刺杀行动组要驱赶爆破小队:老子这里是敏感部门,会爆破了不起啊,谁让你来的?没证件,老子就踢你,在编译环节上我告你:非静态成员函数的非法调用!!!

解决办法:

BOOL 某党某师::清除卧底行动()

{

LPARAM 特殊行动证明 =(LPARAM)this; //某党某师盖公章证明

return 情报部门行动(,,,刺杀行动组,,特殊行动证明;,);     //情报部门摸底排查,派出刺杀行动组   : 1号首长亲自指派情报部门来某党某师配合协助(调用系统API)

}


BOOL CALLBACK 某党某师::刺杀行动组(,证件,)

{

  某党某师* app = (某党某师*)(l证件);  
app->爆破小队
();                                      // 误会排除

... ...

}

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值