• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++ std::stringからLPCWSTRに変換)

VC++ std::stringからLPCWSTRに変換する方法

このQ&Aのポイント
  • Visual C++ 2008を使用してTextBoxからの値(System::String)をmciSendString(LPCWSTR)に渡す方法を知りたい。
  • System::Stringをstd::stringに変換してから渡そうと思っているが、エラーが出てしまう。
  • C++初心者で、変換方法についての指南をお願いしたい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>そこで自分はSystem::Stringをstd::stringに変換しそれから渡そうと思っているのですが・・・ これは不要でしょう。 (std::stringはShift_JISコードの文字列を保持している。 System::StringはUnicodeの文字列を保持している。 LPCWSTRはUnicodeの文字列用の変数。 Unicode→Shift_JIS→Unicodeでは無駄が多いし、情報が落ちる可能性がある。) vcclr.hのPtrToStringCharsを使えばSystem::Stringから簡単に取得できるでしょう。 System::String^ s = L"ほげ"; pin_ptr<const wchar_t> p = PtrToStringChars(s); どうしてもstd::stringからならMultiByteToWideChar関数とかmbstowcsあたろりでしょうか。

参考URL:
http://msdn.microsoft.com/ja-jp/library/d1ae6tz5(VS.80).aspx
galdo530
質問者

お礼

このSystem::Stringをstd::stringに変換は std::string cmd = "open " + fileName + " type mpegvideo alias Test"; で連結させたいがためでした。 >System::String^ s = L"ほげ"; >pin_ptr<const wchar_t> p = PtrToStringChars(s); 参考になりました。 System::String^ cmd; cmd = L"open " + textBox1->Text + L" type mpegvideo alias Test"; pin_ptr<const wchar_t> p = PtrToStringChars(cmd); で解決です ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A