gpt4 book ai didi

c++ - 如何在不使用 C++ 中的宽字符串的情况下创建目录?

转载 作者:行者123 更新时间:2023-11-30 02:19:36 25 4
gpt4 key购买 nike

我正在尝试创建一个目录,以便我可以将文件放入其中。

我的代码:

string Set;
...
CreateDirectory("Game/Sets/" + Set, NULL); // I'm trying to have something like this. CreateDirectory needs wide strings, but Set is narrow.

变量 Set 是一个窄字符串。

我想我可能需要 CreateDirectory 以外的东西,但我不知道是什么。

最佳答案

您必须使用 string::c_str() 成员函数来获取相应的 const char*(又名 LPCSTR):

string Set;
...
CreateDirectory(("Game/Sets/" + Set).c_str(), NULL);

但使用临时变量可能更好:

string Set;
...
string fullDir = "Game/Sets/" + Set;
CreateDirectory(fullDir.c_str(), NULL);

您可能正在编译一个 UNICODE 程序。如果是这种情况,您将得到一个错误,因为 const char* 不能转换为 const wchar_t*。解决方案是调用该函数的 ANSI 版本:

CreateDirectoryA(fullDir.c_str(), NULL);

如果您愿意,即使没有错误也可以使用 ANSI 函数,只是为了更加一致。

请记住,CreateDirectory 实际上是一个根据项目配置扩展为 CreateDirectoryWCreateDirectoryA 的宏。您可以根据需要使用这三个名称中的任何一个。

关于c++ - 如何在不使用 C++ 中的宽字符串的情况下创建目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50686249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com