递归火山软件开发平台
标题:
[求助]C++代码取运行目录
[打印本页]
作者:
Vanyogin
时间:
2023-4-7 10:14
标题:
[求助]C++代码取运行目录
本帖最后由 Vanyogin 于 2023-4-7 10:15 编辑
const wchar_t* 程序_取目录W() {
wchar_t exePath[MAX_PATH];
GetModuleFileNameExW(GetCurrentProcess(), 0, exePath, MAX_PATH);
const wchar_t* path = exePath;
std::wstring wstr = path;
size_t pos = wstr.find_last_of(L"\\")+1;
const wchar_t* str2 = L"";
if (pos != std::wstring::npos) {
wstr = wstr.substr(0, pos);
str2 = wstr.c_str();
}
return str2;
}
请问这代码为什么取不了正确结果?在vs运行很多次,只有偶尔能得到正确结果.
作者:
Xelloss0618
时间:
2023-4-7 10:35
不要返回局部变量的指针啊,局部变量会释放,那文本指针就无效了,应该直接返回 std::wstring
std::wstring 程序_取目录W()
{
std::wstring exePath;
exePath.resize(MAX_PATH);
::GetModuleFileNameExW(::GetCurrentProcess(), 0, exePath.data(), MAX_PATH);
size_t pos = exePath.find_last_of('\\');
if (pos != std::wstring::npos)
{
exePath.erase(pos + 1);
return exePath;
}
return std::wstring{};
}
作者:
创世魂
时间:
2023-4-7 12:17
看见这一堆代码,只能说,火山大法好。
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4