Win10下_findnext()调试时中断

原创 2016年08月31日 16:34:36

系统重装升级到win10之后,在win7下面可以运行的文件夹遍历代码会中断。

 ***** VIDEOINPUT LIBRARY - 0.1995 - TFW07 *****

0x00007FFEC8614ECD (ntdll.dll) (demo.exe 中)处的第一机会异常:  0xC0000005:  写入位置 0x00000000036E0590 时发生访问冲突。
0x00007FFEC8614ECD (ntdll.dll) (demo.exe 中)处有未经处理的异常:  0xC0000005:  写入位置 0x00000000036E0590 时发生访问冲突。

原因:
因为_findnext()返回类型为intptr_t而非long型,从“intptr_t”转换到“long”丢失了数据。

vector<string> BrowseFilenamesOneLayer(const char* dir, const char *filespec)
        {

            _chdir(dir);
            _finddata_t fileInfo;
            //long lfDir=0;
            intptr_t  lfDir;
            vector<string> fileVec;
            fileVec.clear();

            if ((lfDir = _findfirst(filespec, &fileInfo)) == -1)
                cout << "No file is found" << endl;
            else
            {
                do
                {
                    char filename[_MAX_PATH];
                    strcpy_s(filename, dir);
                    strcat_s(filename, "//");
                    strcat_s(filename, fileInfo.name);

                    fileVec.push_back(filename);
                    cout << "name=" << filename << endl;
                } while (_findnext(lfDir, &fileInfo) == 0);
            }
            _findclose(lfDir);

            return fileVec;
        }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

c++关于文件夹(文件)的相关操作_findfirst,_findnext和_findclose方法

1、获取windows下某文件下的所有文件 #include #include #include using namespace std; ...

x64下vs2013 C++遍历目录下所有文件使用_findnext()调试时中断

今天尝试在VS2013 win32控制台下写一个手写数字的机器学习程序,其中需要遍历某目录下的所有.txt文件,在网上查了大量方法,主流是这样的 #include #include #inclu...

解决Win10下_findnext()异常

在win10中,使用文件遍历函数_findnext会报0xC0000005错误 原因: _findnext()第一个参数”路径句柄”,返回的类型为intptr_t(long long),如果定义为...

解决Win10下_findnext()异常

在win10中,使用文件遍历函数_findnext会报0xC0000005错误 原因: _findnext()第一个参数”路径句柄”,返回的类型为intptr_t(long long),如果定...

x64下vs2013 C++遍历目录下所有文件使用_findnext()调试时中断

使用findfirst findnext遍历文件时,发生访问冲突错误 错误定位到ntdll.dll 代码为: void getFiles(string path, vector& files)//...

解决使用findnext相关函数在64位编译环境下遍历文件夹下的文件

遍历文件夹下的特定文件,所有人都推荐使用 _findfirst 还有 _findnext来进行操作,不是很难,但是我的项目必须要在64位环境下编译,x64环境下编译的话, _findfirst 还...
  • lgfun
  • lgfun
  • 2016年06月28日 10:22
  • 1229

使用_findfirst和_findnext遍历目录

最近在学习文件操作,用到了_findfirst() 和_findnext() 两个函数,写了个小程序,输入一个目录名,输出它下面的文件和目录。 主要用到了这么几个CRT函数: _access();...

x64下vs2013 C++遍历目录下所有文件使用_findnext()调试时中断

今天尝试在VS2013 win32控制台下写一个手写数字的机器学习程序,其中需要遍历某目录下的所有.txt文件,在网上查了大量方法,主流是这样的 #include "stdafx.h" #incl...

面试经典(10)--归并排序

归并排序是面试常考的排序算法,也有一些题目是归并排序的变形,比如数组的逆序对问题,后面我会更新这个算法。归并是典型的分治算法,比较简单,直接上代码。 void merge(int *a,int fir...

写入位置时发生访问冲突

写入位置时发生访问冲突 原因总结: 1:使用了未初始化的指针(未给指针分配空间) 2:使用了已经删除的指针 3.char str[]="ABCD",这个数组的存储空间是在栈...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Win10下_findnext()调试时中断
举报原因:
原因补充:

(最多只允许输入30个字)