SHGetSpecialFolderPath到System :: String ^

时间:2012-06-21 15:55:41

标签: string visual-c++ c++-cli appdata tchar

我正在尝试将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";

1 个答案:

答案 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数组。