11

C++\CLI String^システム(.net)をMFCC++文字列に変換するにはどうすればよいですかLPCTSTR

LPCTSTRに入るのは非常に簡単ですString^が、これまでのところ、その逆を行うことについては何も見つかりませんでした。

4

2 に答える 2

17

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++でのマーシャリングの概要

于 2012-03-20T07:54:57.443 に答える
3

Marshal::StringToHGlobalUniMarshal::StringToHGlobalAutoまたはMarshal:: StringToHGlobalAnsiを試してみてください。

割り当てられた管理されていない文字列は、 Marshal::FreeHGlobalで解放する必要があることに注意してください。

于 2012-03-20T07:32:04.993 に答える