Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;:如何转换%;USERPROFILE%路径到文件路径(应适用于Windows XP及更高版本) 如何将%UrrStices %PATH转换成C++文件路径?它应该适用于Windows XP和更高版本。 我需要它,因为当我试图使用javaw.exe使用CreateProcessW方法启动.jar文件时,找不到该文件。_C++_Windows - Fatal编程技术网

C++;:如何转换%;USERPROFILE%路径到文件路径(应适用于Windows XP及更高版本) 如何将%UrrStices %PATH转换成C++文件路径?它应该适用于Windows XP和更高版本。 我需要它,因为当我试图使用javaw.exe使用CreateProcessW方法启动.jar文件时,找不到该文件。

C++;:如何转换%;USERPROFILE%路径到文件路径(应适用于Windows XP及更高版本) 如何将%UrrStices %PATH转换成C++文件路径?它应该适用于Windows XP和更高版本。 我需要它,因为当我试图使用javaw.exe使用CreateProcessW方法启动.jar文件时,找不到该文件。,c++,windows,C++,Windows,您可以使用一个扩展环境变量的函数。例如getenv,或者在Windows上,您可以选择使用GetEnvironmentVariable 但是,找到用户配置文件目录的正确方法是使用Windows API。如果您需要支持XP,则需要对该文件夹使用CSIDL:。用于读取与特定CSIDL值关联的路径 这就是获取用户配置文件目录的方法,尽管我必须承认,我很难理解这将如何帮助您启动javaw.exe 更新 在注释中,您指出您实际上需要临时目录。使用GetTempPath来获得它。我必须获得临时目录的完整路径

您可以使用一个扩展环境变量的函数。例如
getenv
,或者在Windows上,您可以选择使用
GetEnvironmentVariable

但是,找到用户配置文件目录的正确方法是使用Windows API。如果您需要支持XP,则需要对该文件夹使用CSIDL:。用于读取与特定CSIDL值关联的路径

这就是获取用户配置文件目录的方法,尽管我必须承认,我很难理解这将如何帮助您启动javaw.exe

更新


在注释中,您指出您实际上需要临时目录。使用
GetTempPath
来获得它。

我必须获得临时目录的完整路径。我已经阅读了注册表项
HKEY\u CURRENT\u USER\\Environment
TEMP
,但是该值包含%USERPROFILE%,这给javaw.exe带来了问题-它不知道什么是%USERPROFILE%。如果您想要用户临时目录路径,那么
GetTempPath
可能会有帮助。目前我正在使用注册表中的值,但是使用
CSIDL\u PROFILE
标志将%USERPROFILE%替换为
SHGetFolderPathW
。也许
GetTempPath
更好。真的谢谢你的帮助:)好吧,你现在所做的是完全错误的。您必须使用GetTempPath.mableeduplicate或mableeduplicate,但对我来说没有好的答案。
SHGetFolderPathW
方法没有任何内容。由
SHGetFolderPath
返回的文件夹与环境变量无关。随着它们的扩展,情况就更糟了。