游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5018|回复: 4

加载BITMAP图片中函数_lseek出现Debug Assertion Failed错误

[复制链接]

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2007-10-7 21:22:00 | 显示全部楼层 |阅读模式
在VC.net 2005中
我用OpenFile函数打开BITAMP文件,用_lread读取文件.然后设置 _lseek(file_handle,4,SEEK_SET)时候就出现
Debug Assertion Failed错误.我跟踪了一下发现进入
_int64 __cdecl _lseeki64 (
        int fh,
        __int64 pos,
        int mthd
        )
{
        __int64 r = -1i64;

        /* validate fh */
        _CHECK_FH_CLEAR_OSSERR_RETURN( fh, EBADF, -1i64 );
        _VALIDATE_CLEAR_OSSERR_RETURN((fh >= 0 && (unsigned)fh < (unsigned)_nhandle), EBADF, -1i64);
        _VALIDATE_CLEAR_OSSERR_RETURN((_osfile(fh) & FOPEN), EBADF, -1i64);

        _lock_fh(fh);                   /* lock file handle */
        __try {
                /* make sure the file is open (after locking) */
                if ( _osfile(fh) & FOPEN )
                        r = _lseeki64_nolock( fh, pos, mthd );  /* seek */
                else {
                        errno = EBADF;
                        _doserrno = 0;  /* not OS error */
                        r =  -1i64;
                        _ASSERTE(("Invalid file descriptor. File possibly closed by a different thread",0));
                }
        }
        __finally {
                _unlock_fh(fh);         /* unlock file handle */
        }

        return( r );
}
这个函数出错.其中在_VALIDATE_CLEAR_OSSERR_RETURN((fh >= 0 && (unsigned)fh < (unsigned)_nhandle), EBADF, -1i64);
这里出现错误.其中fh的值为3980,但是_nhandle这里是32.怎样解决这个问题呢

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2007-10-7 21:24:00 | 显示全部楼层

Re: 加载BITMAP图片中函数_lseek出现Debug Assertion Failed错误

谢谢..我已经搞了一个星期了.也不知道这是什么问题.
请各位指点指点.

11

主题

190

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
发表于 2007-10-8 11:52:00 | 显示全部楼层

Re:加载BITMAP图片中函数_lseek出现Debug Assertion Failed错误

是不是同时打开的文件太多了,我以前遇到类似的问题就是因为同时打开的文件太多导致C++运行库内存溢出。

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2007-10-8 14:47:00 | 显示全部楼层

Re: 加载BITMAP图片中函数_lseek出现Debug Assertion Failed错误

我只打开一个文件。就出错.提示为下图
sf_2007108144727.gif

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2007-10-10 09:50:00 | 显示全部楼层

Re:加载BITMAP图片中函数_lseek出现Debug Assertion Failed错误

我知道原因了.关键是OpenFile换成_sopen函数,把_lread函数换成_read函数就可以避免这个错误的出现.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-20 19:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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