游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3160|回复: 2

匪夷所思的错误

[复制链接]

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2003-8-6 09:05:00 | 显示全部楼层 |阅读模式
很复杂的问题,大家能看明白就好:
一个类,名字叫gGameUnit,作为RTS游戏中的作战单位;
有个数组:gGameUnit m_Units[16],它是另一个类gGameMaster中的成员,这样是没问题的。
前些天,我把m_Units放到一个结构中:struct gTeam,在gGameMaster中添加这样一个数组成员:gTeam m_Teams[2]。这样访问m_Units的代码就变为:gGameMaster::m_Teams[0].m_Units[0]。
问题就来了!无法访问gGameUnit中的PaintLastState()成员函数,而其他函数访问正常!
所谓的无法访问是指:
PaintLastState()函数的第一行代码为:调用一个MessageBox,输出“OK”。我在执行PaintLastState()前一句话为:调用一个MessageBox,输出“Access”。程序执行现象为:弹出“Access”,然后跳回Windows,那个“OK”不出来了!!!
我又试了一下:直接创建一个单独的gGameUnit的对象,调用PaintLastState(),一点问题也没有!
是不是因为指针的问题把PaintLastState()函数覆盖了?
求救!

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20381
发表于 2003-8-6 13:00:00 | 显示全部楼层

Re:匪夷所思的错误

似乎有点复杂,会不会是那个m_Unit没有正常的创建出来?你可以跟踪调试一下。

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
 楼主| 发表于 2003-8-6 19:56:00 | 显示全部楼层

Re:匪夷所思的错误

sea_bug,问题已经解决!是ZeroMemory的问题!我有这样一句话:
ZeroMemory(m_Units, sizeof(gGameUnit) * 16),就是它造成了错误!我想这是一个很“经典”的指针&类的错误,希望你能提醒大家一下下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-22 01:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表