1

我正在尝试将 a 解析SHGetSpecialFolderPath为字符串,System::String^准确地说是 a 。
我现在正在使用这段代码:

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";
4

1 回答 1

1

我不认为 C++/CLI 可以自动连接 char 数组并将它们分配给字符串句柄。我认为您需要System::String像这样实例化一个新对象:

System::String^ loc_inst = gcnew System::String(appDataPath);
loc_inst.Append("\\inst\\info.xml");

或者你可以使用 a StringBuilder,但如果你想创建一个新String对象,我认为你必须使用gcnew一个构造函数。

请记住,这appDataPath不是String您之前分配的 char 数组。但是,System::String允许您在其构造函数之一中传入 char 数组。

于 2012-06-21T16:11:35.560 回答