用文件路径填充WCHAR数组 我试图用C++中的几个文件路径填充一个 WChar < /Cord>数组,但是我似乎无法理解如何去做。

用文件路径填充WCHAR数组 我试图用C++中的几个文件路径填充一个 WChar < /Cord>数组,但是我似乎无法理解如何去做。,c++,arrays,C++,Arrays,我现在是怎么做的: WCHAR WallTextureArray[]={L"../Engine/data/wall01.dds",L"../Engine/data/wall02.dds"}; 这根本不是编译。如果我只使用一个文件路径,它会用一个字符填充数组的每个索引,我需要WallTextureArray[0]来包含完整的文件路径,依此类推 提前感谢。您的代码声明了一个宽字符的1-d数组,但您需要一个2d数组(一个WCHAR数组)。第一个维度是字符串的数量,第二个维度是任何字符串的最大长度。因

我现在是怎么做的:

WCHAR WallTextureArray[]={L"../Engine/data/wall01.dds",L"../Engine/data/wall02.dds"};
这根本不是编译。如果我只使用一个文件路径,它会用一个字符填充数组的每个索引,我需要
WallTextureArray[0]
来包含完整的文件路径,依此类推


提前感谢。

您的代码声明了一个宽字符的1-d数组,但您需要一个2d数组(一个WCHAR数组)。第一个维度是字符串的数量,第二个维度是任何字符串的最大长度。因此,
WCHAR WallTextureArray[][50]
可能会满足您的需求(至少在文件名长度超过49个字符之前)

如果您不想对原始类型和大小大惊小怪,也可以使用
std::vector>

编辑:约翰尼·莫普的评论也会起作用,而且不那么脆弱,因为它不需要你修正第二维度。我建议这样做,而不是我原来的建议。

根据这个定义:

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

如果需要字符串数组,则可以定义指向
WCHAR
s的指针数组:

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


注意,在现代C++中,您可能希望使用一个方便的容器类,如<强> >代码>:::vector < /COD> <强>,而不是原始C样式数组,并使用<代码> STD::WScRe>代码> >代码> 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"
};

尝试一组指针:
WCHAR*WallTextureArray[]={…}
在此上下文中“ETA”是什么?@Lightness”编辑为添加“感谢您提供的信息”。这就是说,修订历史记录已经跟踪了更改,因此它似乎是多余的?@可能是Lightness。我的想法是,用这种方式来解决这个问题需要更少的工作,但如果人们认为这只是杂乱无章,我可以放弃。我认为这只是杂乱无章,但我不知道有什么共识。
const WCHAR* WallTextureArray[] = { 
    L"../Engine/data/wall01.dds",
    L"../Engine/data/wall02.dds"
};
#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.push_back(L"../Engine/data/another_wall.dds");