我一直在使用FindFirstFile和FindNextFile遇到问题,我需要让它们将所有dll列出到一个数组中,但是我无法让它列出任何文件。我试过使用和编辑MSDN中的示例代码,但是它们将错误类型的变量传递给函数都无法正常工作。我现在所拥有的代码很困惑,但抱歉,但我正尽一切努力使其正常工作。我还使用了argv[1],因为我相信它会提供.exe的目录,这是我需要的目录,因为将存储dll。我对为什么我尝试的所有示例都不起作用以及为什么我无法修改它们而感到完全困惑。

WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;

string directorySearch = "E:\\My Documents\\Visual Studio 2010\\Projects\\SEP-Asignment-One\\Debug\\*";

// Find the first file in the directory.
hFind = FindFirstFile(LPCWSTR("E:\\My Documents\\Visual Studio 2010\\Projects\\SEP-Asignment-One\\Debug\\*"), &FindFileData);

if (hFind == INVALID_HANDLE_VALUE)
{
  printf ("Invalid file handle. Error is %u.\n", GetLastError());
}
else
{
  printf ("First file name is %s.\n", FindFileData.cFileName);

                    // List all the other files in the directory.
  while (FindNextFile(hFind, &FindFileData) != 0)
  {
     printf ("Next file name is %s.\n", FindFileData.cFileName);
  }
  FindClose(hFind);

任何帮助都将被取消。

最佳答案

使用std::wstring,像L"Hello"这样的宽字符串文字,并记住在包含UNICODE之前先定义<windows.h>(但这是在Visual Studio项目中默认完成的)。

09-06 11:25