1
  1. 我创建了一个 md5 哈希器,它接受一个文件并返回哈希值。
  2. 我使用“hFind = FindFirstFile(dir, &data)”来列出目录的文件。
  3. 为了将这些文件的路径传递给我的哈希函数,我需要将文件名连接到填充路径(两者都是 LPCTSTR)。

我的 FileHashComputing Snippet = 计算文件的 hashValue

代码片段:

HANDLE hFind;
WIN32_FIND_DATA data;
LPCTSTR dir = L"c:\\*.*";
LPCTSTR FNAME;
LPCTSTR FULLPATH = L"c:\\";

hFind = FindFirstFile(dir, &data);
FindNextFile(hFind, &data);
printf("%ws\n", data.cFileName);

FNAME = data.cFileName;
printf("%ws\n", FNAME);
4

1 回答 1

1

LPCTSTR 只是指针。将它们连接起来是没有意义的。要连接两个字符串,您需要一些内存来包含结果,但您还没有为此分配任何内存。要使用字符串而无需处理指针和缓冲区的麻烦,请使用 std::wstring 类。

#include <string>

std::wstring full(L"C:\\");
full += data.cFileName;
wprintf(L"%ws\n", full.c_str());
于 2013-06-14T00:54:36.293 回答