c#コード-
string s="おはよう";
sをwstringとしてc++dllに送信したい
..c#で文字列をwstringに変換する方法は?
c#コード-
string s="おはよう";
sをwstringとしてc++dllに送信したい
..c#で文字列をwstringに変換する方法は?
Astd::wstring
は、C++ ランタイムによって割り当てられ、実装に依存する内部形式を持つ C++ オブジェクトです。C# プログラムでそれらの 1 つを作成し、それをアンマネージ C++ コードに渡す方法を理解できるかもしれませんが、そうするのはやや難しく、危険を伴います。a の内部構造std::wstring
は実装に依存するため、C++ コンパイラまたはランタイム ライブラリを変更すると、ソリューションが機能しなくなります。
あなたがやろうとしていることは、通常、LPTStr
パラメーターを受け取り、それを に変換してから、std::wstring
呼び出したい C++ 関数を呼び出す C++ でインターフェイス レイヤーを作成することによって行われます。つまり、呼び出したい関数が次のように宣言されている場合です。
int Foo(std::wstring p);
インターフェース関数を書きます:
int FooCaller(LPTSTR p)
{
std::wstring str = p;
return Foo(str);
}
FooCaller
そして、C# プログラムから呼び出します。
つまり、C# は を作成して渡すことができないためstd::wstring
、変換レイヤーを使用します。