0

我有这样的代码

wstring filename;
wstring dirname;
wstring disk;

然后我想以这种方式拆分文件的完整路径

_wsplitpath(&filepath[0],&disk[0],&dirname[0],NULL,NULL);

但我有一个例外。我做错了什么?

4

1 回答 1

0

使用_wsplitpath_s它可以防止缓冲区溢出。还使用返回指向可变字符的指针并使用大小初始化它们的向量:

std::wstring filename;
std::vector<wchar_t> disk(8);
std::vector<wchar_t> dirname(1024);

_wsplitpath_s(
    filename.c_str(),
    disk.data(), disk.size(),
    dirname.data(), dirname.size(),
    nullptr, 0,
    nullptr, 0
);
于 2013-11-02T17:11:17.360 回答