C++\CLI
String^
システム(.net)をMFCC++文字列に変換するにはどうすればよいですかLPCTSTR
。
LPCTSTR
に入るのは非常に簡単ですString^
が、これまでのところ、その逆を行うことについては何も見つかりませんでした。
Visual Studio 2008以降を使用している場合は、次のようにC ++/CLIマーシャリングライブラリを使用してこれを実行できるはずです。
#include <msclr\marshal.h>
using namespace System;
using namespace msclr::interop;
...
String^ cliString;
marshal_context context;
LPCTSTR cstr = context.marshal_as<const TCHAR*>(cliString);
MSDNのタイプ間のマーシャリングの詳細:C++でのマーシャリングの概要
Marshal::StringToHGlobalUni、Marshal::StringToHGlobalAutoまたはMarshal:: StringToHGlobalAnsiを試してみてください。
割り当てられた管理されていない文字列は、 Marshal::FreeHGlobalで解放する必要があることに注意してください。