首页 > 解决方案 > 如何使 CreateFileA WINAPI 函数在这种形式下工作?

问题描述

我有这个 WINAPI 函数:

HANDLE file{ CreateFileA((LPCSTR)"\\\\.\\" + (???) ", FILE_APPEND_DATA,FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) };

我有一个 std::string 类型的全局变量“Path”和一个 TCHAR* 类型的用户名,我假设我需要将这两个变量转换为 LPCSTR,但是,即使经过一段时间我也不知道该怎么做谷歌搜索。我会很感激任何帮助。

标签: c++winapi

解决方案


只需将两个std::strings 连接成一个 new std::string,然后使用它的c_str()方法,例如:

std::string Path = ...;
std::string username = ...;
std::string fullpath = Path + username;

HANDLE file{ CreateFileA(fullpath.c_str(), ...) };

或者简单地说:

std::string Path = ...;
std::string username = ...;

HANDLE file{ CreateFileA((Path + username).c_str(), ...) };

推荐阅读