私はCの文字列を返す関数を持つC++のdllを持っていますが、この関数を呼び出してC#の文字列に戻すC#プログラムがあります。ここでは、私がCの文字列をC#のプログラムに戻す
__declspec(dllexport) const char* function (const char* str) {
std::string stdString(str);
std::cout << stdString.c_str() << std::endl; // this prints fine, no data loss
return stdString.c_str();
}
を意味するものだと、ここで私は地元の人たちに見てみると、それは変数「何とか」が「」に等しいと言うC#コード
[DllImport("MyDLL.dll")]
public static extern string function(string data);
string blah = function("blah");
Console.WriteLine(blah); // doesn't print anything...
です。
データには何が起こったのですか?
'stdString'と一緒に破壊されました。 – lapk
C#の 'string'は' const char * 'と等価ではありません。 –
C#文字列に戻るにはどうすればよいですか? – tr0yspradling