《windows游戏编程大师技巧》上给的 DirectDraw 载入位图 的程序运行出错 200
程序的源代码非常长,就是随书附赠光盘的demo7_10.cpp。网上可以下到,我也是下的,麻烦大神下下来看一下,或者留邮箱我邮过去。首先我用的是VS2010的IDE,wi...
程序的源代码非常长,就是随书附赠光盘的demo7_10.cpp。网上可以下到,我也是下的,麻烦大神下下来看一下,或者留邮箱我邮过去。
首先我用的是VS2010的IDE,win7 64位操作系统
编译的时候,把ddraw.lib包含进去了,字符集也改了,设置上应该没问题。
我把位图文件放在和生成的EXE文件同目录下的。
我在程序的修改就是:
把
#include <iostream.h>
改成了
#include <iostream>
运行之后提示
Debug Assertion Failed
具体好像是
_lseek.c
line 65
我觉得是
if (!Load_Bitmap_File(&bitmap,"bitmap8.bmp"))
return(0);
这句不对,于是在G盘复制了一个位图文件,之后把这句改成
if (!Load_Bitmap_File(&bitmap,"G:\bitmap8.bmp"))
return(0);
上面的错误提示没了,直接提示程序停止工作。
我完全不知道问题在哪,现在不弄懂也没法往下看了,急求好心人帮助
我知道出问题的语句是那一句了,
应该是“_lseek(file_handle,-(int)(bitmap->bitmapinfoheader.biSizeImage),SEEK_END);”。
至于我之前想的那个文件载入的没问题应该。
刚才把这一句注释掉,就可以运行了,但是这一句哪出问题了,可以解释下不?
这个定位应该没问题啊 展开
首先我用的是VS2010的IDE,win7 64位操作系统
编译的时候,把ddraw.lib包含进去了,字符集也改了,设置上应该没问题。
我把位图文件放在和生成的EXE文件同目录下的。
我在程序的修改就是:
把
#include <iostream.h>
改成了
#include <iostream>
运行之后提示
Debug Assertion Failed
具体好像是
_lseek.c
line 65
我觉得是
if (!Load_Bitmap_File(&bitmap,"bitmap8.bmp"))
return(0);
这句不对,于是在G盘复制了一个位图文件,之后把这句改成
if (!Load_Bitmap_File(&bitmap,"G:\bitmap8.bmp"))
return(0);
上面的错误提示没了,直接提示程序停止工作。
我完全不知道问题在哪,现在不弄懂也没法往下看了,急求好心人帮助
我知道出问题的语句是那一句了,
应该是“_lseek(file_handle,-(int)(bitmap->bitmapinfoheader.biSizeImage),SEEK_END);”。
至于我之前想的那个文件载入的没问题应该。
刚才把这一句注释掉,就可以运行了,但是这一句哪出问题了,可以解释下不?
这个定位应该没问题啊 展开
3个回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把_lseek换成_llseek试试,好像是因为_lseek函数是16位windows系统时期的函数,所以现在运行起来有问题。我也在看这本书,楼主留个QQ,以后有问题可以一起讨论。
追问
已经好久之前的事了,现在已经在看3D游戏开发了,这个问题后来不记得怎么解决了,毕竟这本书太老了,好多函数用起来都不对,特别是后面dmusic,dsound的,问题一大堆,我有的就跳过了,主要是学这里面的一些思想。
我QQ 404368281,可以一起交流一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-19
展开全部
试试这句if (!Load_Bitmap_File(&bitmap,"G:\\bitmap8.bmp"))
两个\\
两个\\
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询