Ben*_*min 2 windows winapi environment-variables
// I have a permission to create a file to Program Files
const std::wstring sFileName = L"%ProgramFiles%\\aaa.txt";
HANDLE h = CreateFileW(
sFileName.c_str(),
GENERIC_READ,
FILE_SHARE_DELETE,
0,
CREATE_ALWAYS,
0,
0);
// INVALID_HANDLE_VALUE with ERROR_PATH_NOT_FOUND
Run Code Online (Sandbox Code Playgroud)
我预计它会使C:\Program Files\aaa.txt或C:\Program Files (x86)\aaa.txt取决于操作系统的环境。但它没有用。
怎么了?如何在本机代码中使用环境变量?
您需要显式扩展环境变量。一种方法是使用 Win32 API 的 ExpandEnvironmentStrings 或 ExpandEnvironmentStringsForUser
看:
http://msdn.microsoft.com/en-us/library/ms724265(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/bb762275(v=vs.85).aspx
| 归档时间: |
|
| 查看次数: |
2413 次 |
| 最近记录: |