之后无论是点击“继续”或者“忽略”都能继续运行,不会崩溃,再次单击打开结点时候又会弹出相同的异常。。。
但是直接找到工程目录下的exe文件(无论是Debug还是Release)都能够正常运行,或者是Ctrl + F5,说明只有调试的时候才会显示这个错误。
程序中查找文件没有使用CFileFind类而是直接使用API函数::FindFirstFile和::FindNextFile。这两个函数要用到HANDLE文件句柄,一定要注意必须使用::FindClose来关闭由::FindFirstFile返回的文件句柄,停止一个::FindFirstFile/::FindNextFile序列,而不能直接使用::CloseHandle。
将代码中的::CloseHandle改为::FindClose后在VC8环境下程序也正常了。
BOOL FindClose(
HANDLE hFindFile // file search handle
);
功能说明
关闭FindFirstFile创建的搜索句柄
参数说明
HANDLE hFindFile FindFirstFile创建的句柄
返回值
调用成功 返回一个非0值
失败 返回0 可利用GetLastError来得到错误信息
转自:https://blog.youkuaiyun.com/xionglifei2014/article/details/86605230
博客详细描述了一个在VC8环境下遇到的调试问题,即在调试时程序异常,但在直接运行exe文件或使用Ctrl+F5时正常。问题根源在于使用API函数::FindFirstFile和::FindNextFile查找文件后,未正确关闭文件句柄。作者发现错误地使用了::CloseHandle,而应该使用::FindClose来关闭搜索句柄。修复此错误后,调试运行恢复正常。
2万+

被折叠的 条评论
为什么被折叠?



