請幫幫忙,調用C++方法返回一個字符串,從C#
my c++ function:
extern "C" REGISTRATION_API void calculate(char* msg)
{
//some calculation here
msg = "some text";
}
我的C#電話:
[DllImport("thecpp.dll")]
static extern void calculate(StringBuilder sMsg);
private void button4_Click(object sender, EventArgs e)
{
StringBuilder msg = new StringBuilder();
calculate(msg);
MessageBox.Show(msg.ToString());
}
不管我放味精,StringBuilder的永遠是空的?爲什麼?怎麼了?有任何想法嗎?請分享
您的C++函數是內存泄漏。 – SLaks 2010-07-07 13:43:50
在你的C代碼中,你正在爲'msg'指針本身賦值,而不是指向指向的內存。我不知道如何解決這個問題。編組,但我只是把它扔在這裏,因爲兩個答案似乎已經錯過了它。 – Thomas 2010-07-07 13:44:48
@SLaks:這不是內存泄漏,但我承認,將字符串文字分配給非const「char」指針是可怕的。 – Thomas 2010-07-07 13:46:34