CFileFind finder;
   BOOL bWorking = finder.FindFile("*.*");
   while (bWorking)
   {
      bWorking = finder.FindNextFile();
      cout << (LPCTSTR) finder.GetFileName() << endl;
   }这段代码是MSDN里的例子,我把其中的(*.*)换成了("D://*.*")目的是想得到D盘下的所有文件,这个没有考虑D盘下还有其他文件夹的问题,后面有换成了("D://*.jpeg"),是想得到D盘下所有的jpeg格式的文件,我这么理解对吗?、
这段代码编译都过得去,可是执行就会有错误,是怎么回事呢??
错误:Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/nomfc.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

解决方案 »

  1.   

    建的是Win30 Console Application...
      

  2.   

    win32控制台工程里无法用MFC的(你的CFileFind)
      

  3.   

    project->setting->c/c++->category->code generation->换成多线程就行了
      

  4.   

    重新键工程;
    win32  console applocation -》 选择支持MFC的-》在else 部分里加上自己代码(注释里有标明)
    就把你粘贴在这里的代码粘贴上去;运行 正确。你这个代码只能显示当前文件夹下的。
    要显示下面文件夹的话就要使用递归函数了。你的函数该成find()运行find(D:\\*.*)CFileFind finder;
    find(char * str)

       BOOL bWorking = finder.FindFile(str);
       while (bWorking)
       {
          bWorking = finder.FindNextFile();
          cout << (LPCTSTR) finder.GetFileName() << endl;
         if(finder.isDirectory())
           find(finder.GetFileName());  //递归;
       }
       return ;
      }
     代码意思已经达到 细节你自己调试调试吧  加油。帮你UP。。
    百度也能搜索到代码。
      

  5.   

    写错了,是win32 application无法用mfc,你在工程设置里选择动态加载mfc,然后在文件头加上afxwin.h
      

  6.   

    你应该还有其他代码吧,其他代码中有多线程的部分。百度了下貌似发现有人也出现这种奇怪的多线程的问题,只要加上 afx.h就会出现。 建议你在工程中设置使用MFC,而不是简单的加上库文件。
    如果真的是有多线程部分,那么楼上有几位已经说出了工程的设置方法。
      

  7.   

    看我的
    void CEditLegalFileDlg::AnalyseDir(char *szDir)
    {
    char szFind[MAX_PATH]; 
    char szFile[1024];
    WIN32_FIND_DATA FindFileData; 
    strcpy(szFind,szDir); 
    strcat(szFind,"\\*.*"); 
    HANDLE hFind=FindFirstFile(szFind,&FindFileData); 
    if(INVALID_HANDLE_VALUE == hFind)    return;  while(TRUE) 

    if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 

    if(FindFileData.cFileName[0]!='.') 

    strcpy(szFile,szDir); 
    strcat(szFile,"\\"); 
    strcat(szFile,FindFileData.cFileName); 
    AnalyseDir(szFile); 


    else 

    int index=(int)strlen(FindFileData.cFileName)-1;
    while(index>0)
    {
    if(FindFileData.cFileName[index]=='.') //找到第一个点
    break;
    index--;
    }
    char *p=&FindFileData.cFileName[index+1];
    char fullName[MAX_PATH]; strcpy(fullName,szDir);
    strcat(fullName,"\\");
    strcat(fullName,FindFileData.cFileName); UpperToLower(p,strlen(p));
    if(CheckExtend("exe",p)||CheckExtend("com",p)) //||CheckExtend("sys",p)||CheckExtend("dll",p))
    AddToList(fullName); } 
    if(!FindNextFile(hFind,&FindFileData))    break; 

    FindClose(hFind); 
    }
      

  8.   

    要设置成多线程..
    ----
    方法:vc-->project-->setting-->option  在option添加 /MT..