gpt4 book ai didi

winapi - Win32 函数获取 C :\ProgramData 的路径

转载 作者:行者123 更新时间:2023-12-03 21:26:05 26 4
gpt4 key购买 nike

我的应用程序需要安装一些可以在运行时由应用程序编辑的文件。 Install shield 提供了一个别名 [CommonAppDataFolder],它将在 Vista 和 Windows 7 上解析为 c:\programData,并且也适用于 Windows XP。是否有返回类似路径的 win32 函数?

也许我需要根据操作系统调用不同的函数?

最佳答案

SHGetFolderPath /SHGetSpecialFolderPath让你知道,用 CSIDL_COMMON_APPDATA争论。
请参阅此处的代码片段(底部):How to write a Windows XP Application that stores user and application data in the correct location by using Visual C++ ;原始链接不再有效 - 代码片段在下方):

include <shlwapi.h>
#pragma comment(lib,"shlwapi.lib")
void CreateTemporaryFile()
{
TCHAR szPath[MAX_PATH];
// Get path for each computer, non-user specific and non-roaming data.
if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA,
NULL, 0, szPath ) ) )
{
TCHAR szTempFileName[MAX_PATH];
// Append product-specific path - this path needs to already exist
// for GetTempFileName to succeed.
PathAppend( szPath, _T("\\My Company\\My Product\\1.0\\") );
// Generate a temporary file name within this folder.
if (GetTempFileName( szPath,
_T("PRE"),
0,
szTempFileName ) != 0 )
{
HANDLE hFile = NULL;
// Open the file.
if (( hFile = CreateFile( szTempFileName,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL )) != INVALID_HANDLE_VALUE )
{
// Write temporary data (code omitted).
CloseHandle( hFile );
}
}
else
DWORD err = GetLastError();
}
}
  • Windows XP:C:\Documents and Settings\All Users\Application Data
  • Windows Vista:C:\ProgramData
  • Windows 7:C:\ProgramData

  • 另见: CSIDL .

    关于winapi - Win32 函数获取 C :\ProgramData 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11196151/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com