请帮帮忙,调用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