CWnd *pwnd = FindWindow("ExploreWClass",NULL)//得到资源管理器窗口HWND hWnd = pWnd->m_hwnd;//得到它的HWND 通过它的窗口句柄m_hWnd成员,来得到这个窗口的句柄 表面上看,这个代码好像没有什么问题,但是实际上,这里可能有个漏洞,那就是当pWnd为空/null的时候,我们不能对一个NULL指针来访问其成员, 这时...
HWND hwnd = pwnd->m_hwnd; //得到它的HWND 这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->GetSafeHwnd...
HWND hwnd = pwnd->m_hwnd; //得到它的HWND 这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->GetSafeHwnd...
这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND ...
这个时候,你发现问题了吗?既然对象指针是空指针,那么怎么能获取对象的成员呢?因为对象指针为空,说明这个对象不存在,对象都不存在,你还能得到对象的窗口句柄么?是吧。那么此时不只是得不到句柄这么简单哦。如果你运行这个代码,那么,程序就会崩溃。这是内存访问违规了。因为你要操作NULL指针。
这样的代码当开始得到的pwnd 为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL 指针访问其成员,如果用下面的代码:CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND 就不会出现问题,因为...
HWND hwnd = pwnd->m_hwnd; //得到它的HWND 这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 ...
这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL);//希望找到资源管理器HWND hwnd = pwnd->GetSafeHwnd();//得到它的HWND ...