gpt4 book ai didi

c++ - 用文件路径填充 WCHAR 数组

转载 作者:行者123 更新时间:2023-11-30 04:05:20 25 4
gpt4 key购买 nike

我正在尝试用 C++ 中的几个纹理文件路径填充 WCHAR 数组,但我似乎无法理解如何去做。

我现在是怎么做的:

WCHAR WallTextureArray[]={L"../Engine/data/wall01.dds",L"../Engine/data/wall02.dds"};

这根本不是编译。如果我只使用一个文件路径,它会用一个字符填充数组的每个索引,我需要 WallTextureArray[0] 来包含完整的文件路径等等。

提前致谢。

最佳答案

有了这个定义:

WCHAR WallTextureArray[] = { ...

您定义了一个 WCHAR 数组,即一个字符串

如果你想要一个字符串数组,那么你可以定义一个指向WCHAR的指针数组:

const WCHAR* WallTextureArray[] = { 
L"../Engine/data/wall01.dds",
L"../Engine/data/wall02.dds"
};

(因为这些是字符串字面量,您不能修改它们,所以我添加了 const。)


请注意,在现代 C++ 中,您可能希望使用方便的容器类,如 std::vector 而不是原始的 C 风格数组,并使用 std::wstring 用于基于 WCHAR 的字符串,例如

#include <string>   // For std::wstring
#include <vector> // For std::vector

....
std::vector<std::wstring> WallTextureArray = {
L"../Engine/data/wall01.dds",
L"../Engine/data/wall02.dds"
};

您可以使用通常的 [] 语法访问数组中的单个字符串(例如,WallTextureArray[0] 是第一个字符串,WallTextureArray[1] 是第二个字符串等)。

此外,给定一个 std::wstring,如果您需要一个指向原始 C 风格 NUL 终止字符串的指针(例如,为了与 C API 互操作),您可以调用 std::wstring::c_str() 方法。

您还可以向 vector 添加更多字符串,例如使用 std::vector::push_back() 方法:

WallTextureArray.push_back(L"../Engine/data/another_wall.dds");

关于c++ - 用文件路径填充 WCHAR 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344193/

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