MS窗口中的应用程序path位置

我应该在哪里存储应用程序的安装文件夹来反驳?

我相信你正在寻找的是GetmoduleeFileName函数,你可以这样使用:

// get the full path to the current executable wchar_t fullPath[MAX_PATH]; GetmoduleeFileName(NULL, fullPath, MAX_PATH); // cut the string at the last slash, because we just want the directory // not the actual executeable file name. TCHAR *lastSlash = wcsrchr(fullPath, L'\\'); lastSlash = 0; // directory where the executable is location is fullPath 

这将工作,不管当前的工作目录,一般来说,这是我做所有 “相对路径”的东西(也就是说,我从来没有实际使用相对路径,他们总是绝对路径,基于从函数返回的值以上)。

您可以使用注册表来存储安装文件夹。

:: GetmoduleeFileName(NULL,out_lpPathName,in_size)会给你可执行文件的完整路径。

ApplicationData文件夹,即使不是管理员访问也可以帮助您访问安装数据。 与CISDL CSIDL_APPDATA一起使用SHGetSpecialFolderPath

在注册表中。 具体而言,如果您为所有用户(即\ Program Files)安装了应用程序,并且在HKEY_CURRENT_USER\SOFTWARE\YourCompanyName\YourApplicationName\下安装了应用程序,则在HKEY_LOCAL_MACHINE\SOFTWARE\YourCompanyName\YourApplicationName\如果仅为单个用户安装该应用程序,