- 我创建了一个 md5 哈希器,它接受一个文件并返回哈希值。
- 我使用“hFind = FindFirstFile(dir, &data)”来列出目录中的文件。
- 为了将这些文件的路径传递给我的哈希函数,我需要将文件名连接到填充路径(两者都是 LPCTSTR)。
我的 FileHashComputing 片段 = computing hashValue of a file
代码片段:
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);
最佳答案
LPCTSTR 只是指针。连接它们是没有意义的。要连接两个字符串,您需要一些内存来包含结果,但您还没有为此分配任何内存。要处理字符串而无需处理指针和缓冲区的麻烦,请使用 std::wstring 类。
#include <string>
std::wstring full(L"C:\\");
full += data.cFileName;
wprintf(L"%ws\n", full.c_str());
关于c++ - 连接 LPCTSTR 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17098785/