我要发帖 回复

正式会员

2

主题

28

积分

0

专家分

:

私信
发表时间 : 2013-1-28 21:21:45 | 浏览 : 896    评论 : 4
在学习《Vega实时三维视景仿真技术 》一书中,试着敲了书中关于VC6 MFC的Vega程序,按要求增加了VC搜索路径,结果编译链接时都没有问题,但在运行时,运行到Vega函数时(vgXXXXX),就出错。提示“XXXXX”指令引用的“XXXXX”内存,该内存不能为written。在调试模式下,当运行到第一个Vega函数vgWinSize()时,按F9进入,会弹出一个名为“Find Source”的路径选择对话框,要求我“Please enter the path for WINDOW.CPP”。如图所示
请教各位高人,这WINDOW.CPP是什么东西?什么原因造成出错的?是因为我这个Vega3.7是盗版和原因,还是其它的?这是我第一个MFC-Vega程序,基于控制台的Vega运行都正常。在此先谢谢大家!
123.JPG

最近VR访客

kgy4xtd 评论于2013-1-28 21:24:48
更正一下,在调试时,是按F11 step into 进去的,一按就出现这个对话框
kgy4xtd 评论于2013-1-28 21:25:31
更正一下,在调试时,是按F11 step into 进去的,一按就出现这个对话框
VGLL 评论于2013-1-29 17:28:59
提示“XXXXX”指令引用的“XXXXX”内存,该内存不能为written。
这是典型的野指针问题,不用大惊小怪。
在调试模式下,当运行到第一个Vega函数vgWinSize()时,按F9进入,会弹出一个名为“Find Source”的路径选择对话框,要求我“Please enter the path for WINDOW.CPP”。
这是因为,在Vega调试过程中,需要实时加载动态的库函数,函数的定义在某些文件中。这是VC6 + VG3.7开发的常见问题。具体到你这个vgWinSize,很可能是找不到窗口的指针。
QQ1349460345.
各类Vega论文、程序、疑难、项目
QQ : 1329460345
kgy4xtd 评论于2013-1-31 19:20:11
谢谢VGLL 的耐心指导。在您的提示下,我找到了原因:vgWinSize()是放在视窗的OnSize中运行的,第一次执行时,vega库还未初始化,所以会出错。通过加上一个vega初始化完成的逻辑判断,问题就解决了。再次感谢VGLL的帮助!

手机版|VR开发网 ( 津ICP备18009691号 )|网站地图 统计 网安备12019202000257

GMT+8, 2019-2-24 02:58 AM

返回顶部