在我的代码中,我有一个 wchar_t 数组:
wchar_t paths [6] = {L"C:\\Program Files\\SomeAppsSuiteFolder1", L"C:\\Program Files\\SomeAppsSuiteFolder2", L"C:\\Program Files (x86)\\SomeAppsSuiteFolder1", L"C:\\Program Files (x86)\\SomeAppsSuiteFolder2", L"C:\\SomeAppsSuiteFolder1", L"C:\\SomeAppsSuiteFolder2"};
稍后我在 for
循环中使用数组。问题是,对于这一行,我收到以下错误:
error: too many initializers for 'wchar_t [6]'
error: initializer-string for array of chars is too long [-fpermissive]
此外,在 for
循环中,我有 if
条件语句,如下所示:
if(GetFileAttributesW(paths[i])!=INVALID_FILE_ATTRIBUTES) {...}
而且,我再次在这里遇到错误:
error: invalid conversion from 'wchar_t' to 'LPCWSTR {aka const wchar_t*}' [-fpermissive]
奇怪的是,类似的代码在几个月前就可以正确编译了……这是什么问题?
最佳答案
你需要
const wchar_t* paths[6] = ....
关于c++ - 无法创建 wchar_t 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17442502/