1

正確SHGetSpecialFolderPathには、aを文字列に解析しようとしています。 私は今このコードを使用しています: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";
4

1 に答える 1

1

C ++/CLIがchar配列を自動的に連結して文字列ハンドルに割り当てることができるとは思いません。System::String次のような新しいオブジェクトをインスタンス化する必要があると思います。

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

または、を使用することもできますがStringBuilder、新しいオブジェクトを作成する場合は、コンストラクターStringを使用する必要があると思います。gcnew

これは、以前に割り当てたchar配列でappDataPathはないことに注意してください。Stringただし、System::Stringコンストラクターの1つでchar配列を渡すことができます。

于 2012-06-21T16:11:35.560 に答える