VS2010编译Gh0st3.6 (一)续

VS2010编译Gh0st3.6 (一)续

1.1.8

gh0st3.6\gh0st\cj60lib\cj60lib\cjpagerctrl.cpp(75): error C2440: “static_cast”: 无法从“BOOL (__thiscall CCJPagerCtrl::* )(NMPGSCROLL *,LRESULT *)”转换为“BOOL (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)” 
1>          在匹配目标类型的范围内没有具有该名称的函数 
gh0st3.6\gh0st\cj60lib\cj60lib\cjpagerctrl.cpp(76): error C2440: “static_cast”: 无法从“BOOL (__thiscall CCJPagerCtrl::* )(NMPGCALCSIZE *,LRESULT *)”转换为“BOOL (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)” 
1>          在匹配目标类型的范围内没有具有该名称的函数

这两处的错误都是一样的,都是同一种参数类型不匹配。定位信息:

ON_NOTIFY_REFLECT_EX(PGN_SCROLL, OnPagerScroll)

ON_NOTIFY_REFLECT_EX(PGN_CALCSIZE, OnPagerCalcSize)

可以看出他们所对应的函数分别是OnPagerScroll和OnPagerCalcSize。直接在上面按F12(右键–跳转到定义处)就跳转到函数定义出了。

E:\Programming\VS2010\Gh0st3.6\gh0st\CJ60Lib\CJ60Lib\CJPagerCtrl.cpp 
BOOL CCJPagerCtrl::OnPagerScroll(NMPGSCROLL* pNMPGScroll, LRESULT* pResult)

{

    *pResult = 0;

return FALSE; // Let parent handle message

}

修改如下:

BOOL CCJPagerCtrl::OnPagerScroll(NMHDR* pNMPGScroll, LRESULT* pResult)

{

    *pResult = 0;

return FALSE; // Let parent handle message

}

===================================================

BOOL CCJPagerCtrl::OnPagerCalcSize(NMPGCALCSIZE* pNMPGCalcSize, LRESULT* pResult)

{

switch(pNMPGCalcSize->dwFlag)

修改如下:

BOOL CCJPagerCtrl::OnPagerCalcSize(NMHDR* pNMHDRPGCalcSize, LRESULT* pResult)

{

 NMPGCALCSIZE *pNMPGCalcSize = (NMPGCALCSIZE *)pNMHDRPGCalcSize;

switch(pNMPGCalcSize->dwFlag)

===================================================

接着修改头文件中申明的参数类型

E:\Programming\VS2010\Gh0st3.6\gh0st\CJ60Lib\Include\CJPagerCtrl.h 
virtual BOOL OnPagerScroll(NMPGSCROLL* pNMPGScroll, LRESULT * pResult);

virtual BOOL OnPagerCalcSize(NMPGCALCSIZE * pNMPGCalcSize, LRESULT* pResult);

修改如下:

virtual BOOL OnPagerScroll(NMPGSCROLL* pNMPGScroll, LRESULT * pResult);

virtual BOOL OnPagerCalcSize(NMHDR* pNMHDRPGCalcSize, LRESULT* pResult);

 

1.2 编译CJ60Lib

首先还是修改字符集为ANSI,默然不为WChar_t。这步是编译Gh0st每一个项目都需要做的,以后的操作中不再提起,请注意。如果提示A函数和W函数重定义,参数冲突等,都是这个问题,改下项目属性就能解决了。

这个直接编译就能过了。用VS2010编译函数很多安全函数的警告,这个不用管他,想修改也是可以的。还有一个_WIN32_WINNT宏未定义的警告,如非必要,我就不加上去了,尽量的保持和原版的相同。要加的话,直接加在每个项目的StdAfx.h里面。格式:#define _WIN32_WINNT 0×0500  这里的参数含义可以参看MSDN,后面有一处修改必须加,也会再次提到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值