事实是,已定义:class xcGameView
{
public:
xcGameView(void){ its_hGameWindow = CreateWindowEx(...);} int Paint(void){PAINTSTRUCT PaintStruct; BeginPaint(its_hGameWindow, &PaintStruct);...}
private:
HWND its_hGameWindow;
};xcGameView xcgvGameView;有WndProc:LRESULT CALLBACK WndProcGame(HWND hwnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
if(uMessage == WM_PAINT)
return xcgvGameView.Paint(); return DefWindowProc(hwnd, uMessage, wParam, lParam);
}编译是成功的。但是在运行是出现"xxx"指令引用"yyy"内存。该内存不能为"read"的错误。其它例子表明,一个对象的方法在被这种情况调用时——姑且先认为是被系统,或者实例调用(?)调用时——它没有权利访问自己的属性。另一个可能与之相关的事实是:在WndProc中是可以访问程序的外部变量的。请给出更准确的理解和解决办法,谢谢。
{
public:
xcGameView(void){ its_hGameWindow = CreateWindowEx(...);} int Paint(void){PAINTSTRUCT PaintStruct; BeginPaint(its_hGameWindow, &PaintStruct);...}
private:
HWND its_hGameWindow;
};xcGameView xcgvGameView;有WndProc:LRESULT CALLBACK WndProcGame(HWND hwnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
if(uMessage == WM_PAINT)
return xcgvGameView.Paint(); return DefWindowProc(hwnd, uMessage, wParam, lParam);
}编译是成功的。但是在运行是出现"xxx"指令引用"yyy"内存。该内存不能为"read"的错误。其它例子表明,一个对象的方法在被这种情况调用时——姑且先认为是被系统,或者实例调用(?)调用时——它没有权利访问自己的属性。另一个可能与之相关的事实是:在WndProc中是可以访问程序的外部变量的。请给出更准确的理解和解决办法,谢谢。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货