windows - MAX_PATH 是否足以保存 GetSystemDirectory() 的路径?
问题描述
据我了解,该路径将是一个单字母(驱动程序),后跟"\WINDOWS\SYSTEM32
" 因此MAX_PATH
足以容纳由GetSystemDirectory()填充的路径。所以这样做是安全的:
TCHAR dir[MAX_PATH] = {0};
if(GetSystemDirectory(dir, sizeof(dir) / sizeof(*dir)) == 0) {
// check for GetLastError()
}
还是我错过了什么?
解决方案
GetSystemDirectory
为( which isShGetFolderPath
)的推荐替代方案提供的文档对它的pszPath
参数进行了如下说明:
指向长度为 MAX_PATH 的以 null 结尾的字符串的指针,它将接收路径。如果发生错误或返回 S_FALSE,此字符串将为空。返回的路径不包含尾部反斜杠。例如,返回“C:\Users”而不是“C:\Users\”。
所以,是的,MAX_PATH
将是一个足够大的缓冲区大小。
推荐阅读
- c - 无法创建预编译头 Z:\usr\include\stdio.h.gch:权限被拒绝
- javascript - 如何解决 AngularJS 中的“TypeError:$location.absUrl 不是函数”错误
- swift - 在 NSImage 上使用 lockFocus 时如何强制使用非视网膜图像?
- visual-studio - 数据类链接不同的字段
- sql - 如何将这 3 个条目“旋转”到一行中?(由同一个复合键捆绑在一起)
- excel - 如何将单元格值传递给 Range 以用作其地址?
- java - 如何修复 com.netflix.zuul.exception.ZuulException:Hystrix 读取超时
- c++ - CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 不涵盖全局变量
- angular - 在子组件的 html 文件中访问父组件属性
- python - 如何在 Python 中结合文本特征和分类特征?