我正在尝试执行下面的代码,但我得到一个错误,说“表达式:字符串下标超出范围”。
wstring relPath = L"..\new\test.txt";
wstring absPath;
_wfullpath(&absPath[0],&relPath[0],_MAX_PATH);对于absPath和relPath,_wfullpath(wchar_t *absPath,const wchar_t *relPath, size_t maxLength)需要一个指向宽字符字符串的指针,而这正是我要传递的(如果我错了,请纠正我)。我不确定简单地将absPath声明为wstring,是否为其分配了内存,这可能是问题所在。
有人能帮我这个忙吗?
发布于 2011-12-21 01:20:03
尝试:
std::wstring relPath = L"..\\new\\test.txt"; // Escape backslashes.
std::wstring absPath;
wchar_t* absPathBuf = _wfullpath(0, relPath.c_str(), _MAX_PATH );
if (0 != absPathBuf)
{
absPath = absPathBuf;
// delete[] absPathBuf; <-- This was wrong, malloc() is used by _wfullpath()
free(absPathBuf);
}https://stackoverflow.com/questions/8578428
复制相似问题