我正在尝试将SHGetSpecialFolderPath
解析为字符串,确切地说是System::String^
。
我现在正在使用此代码:
TCHAR appDataPath;
SHGetSpecialFolderPath(0, appDataPath, CSIDL_APPDATA, false);
我尝试过这样的事情,但它也不起作用:
LPWSTR appDataPath;
SHGetSpecialFolderPath(0, appDataPath, CSIDL_APPDATA, false);
我只想得到System::String^
这样的话:
System::String ^ loc_inst = appDataPath + "\\inst\\info.xml";
答案 0 :(得分:1)
我不认为C ++ / CLI可以自动连接char数组并将它们分配给字符串句柄。我认为你需要像这样实例化一个新的System::String
对象:
System::String^ loc_inst = gcnew System::String(appDataPath);
loc_inst.Append("\\inst\\info.xml");
或者您可以使用StringBuilder
,但如果您想创建一个新的String
对象,我认为您必须使用gcnew
和构造函数。
请记住,appDataPath
不是String
,而是您之前分配的字符数组。但是,System::String
允许您在其构造函数之一中传入char数组。