c++ - 连接 LPCTSTR 字符串

标签 c++ filepath concatenation

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

相关文章:

c++ - Wt:1.5 GB 用于运行论坛(即使连接了单个用户)。正常吗?

c++ - 在 Linux 中分发 QT 应用程序

lua - Lua中的相对文件路径?

c# - 如何连接两个类型为 List<KeyValuePair<string,string>> 的 C# 列表。我有一些重复值,我需要这些重复值

sql - 在 plpgsql 中连接输出

java - 连接常量字符串 VS StringBuffer

c++ - 使用 Visual Studio c++ 的 Windows 窗体应用程序,链接到 CUDA 项目

c++ - QTcpSocket::write - 如何写入大文件?

ios - 如何访问导航 Pane (左 Pane )中创建的文件夹的路径?

java - MySQL SQL脚本中没有这样的文件或目录