step1:
CMyLLKDlg.h
class CMyLLKDlg : public CDialog
{
// Construction
public:
CMyLLKDlg(CWnd* pParent = NULL) // standard constructor
void startGame()
step2:
MyCode.h
void CMyLLKDlg::startGame()
{
HWND gameh=::FindWindow(NULL,"QQ游戏 - 连连看角色版")
DWORD processID
GetWindowThreadProcessId(gameh,&processID)
HANDLE processH=OpenProcess(PROCESS_ALL_ACCESS,false,processID)
ReadProcessMemory(processH,(LPCVOID)0x00115CA0,&m_player1,1,NULL)
ReadProcessMemory(processH,(LPCVOID)0x00115CA4,&m_player2,1,NULL)
ReadProcessMemory(processH,(LPCVOID)0x00115CA8,&m_player3,1,NULL)
ReadProcessMemory(processH,(LPCVOID)0x0012E01C,&m_player4,1,NULL)
ReadProcessMemory(processH,(LPCVOID)0x00115CB0,&m_player5,1,NULL)
ReadProcessMemory(processH,(LPCVOID)0x00115CB4,&m_player6,1,NULL)
UpdateData(false)
}
都是头文件重复编译的问题使用
#ifndef XXXXXXXXXXXX_H
#define XXXXXXXXXXXX_H
代码
#endif
假如有类A,类B两个类。如果想在B中调用A的成员函数,该怎么办呢?方法一:
在类B的cpp文件中包含A类的头文件,然后在B的需要调用A的函数的函数中,添加
#include "A.h"
B::funcB()
{
A a
a.funcA()
}
由于类A的funcA不是静态(static)函数,所以在B中不能这样调用
#include "A.h"
B::funcB()
{
A::funcA()
}
会提示“illegal call of non-static member function”的错误。
方法二:
方法一是用的创建A的对象,然后由对象调用函数的方法。方法二是直接把类A的函数设置成静态函数,这样就不需要创建A类,而直接调用函数。方法是
在类A中把该函数加上static修饰,之后在B类的函数中
#include "A.h"
B::funcB()
{
A::funcA()
}
这样就可以直接调用函数了。
方法三:
用全局指针的方法。
在类B的cpp文件中包含A类,然后在所有类外部声明A* pA之后就可以在类B的函数中直接用pA->funcA()除此之外,其他类,比如说,类C想调用类A的函数,只需要在类C的cpp文件的外部声明 extern A* pA然后类C的成员函数也可以直接调用类A的函数了。
方法四:
看起来比较奇怪的一个设置全局变量的方法。比如说,想把B类设置成全局变量,可以在B类外声明一个全局变量g_pB,然后在构造完B类后,在B类的构造函数中令g_pB = this。这样全局就可以引用这个B类了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)