程序崩溃“out string”

时间:2012-05-10 20:55:34

标签: c#

我正在使用这个dll,其中一个方法需要字符串作为参数out,即

void function(out string param);

当我将字符串传递出去时,程序崩溃了。我正在使用C#。 我在VS2010的输出调试窗口中得到的输出如下: 程序'[4116] Managed(v4.0.30319)'已退出,代码为-1073741819(0xc0000005)。

问题是突然而短暂的,所以我不知道如何进一步解释,但如果你有进一步的问题,请告诉我......

更新: 这是ActiveX DLL,我遇到了教程,提到COM返回Unicode中的字符串。这是导致问题的原因吗?

3 个答案:

答案 0 :(得分:1)

如何调试:

这似乎是本机/托管互操作的问题。因此,请确保将VS调试器设置为x86的混合(本机/托管)或x64的纯本机。

关闭“仅我的代码”(选项 - >调试)并启用Debug-> Exceptions->当为本机异常抛出时。

这样你就可以堆叠并看看发生了什么。

注意:拥有C和C#部件的源代码可以避免需要调试......

答案 1 :(得分:1)

你怎么称呼它,你在方法调用中包含'out'字样吗?

string str;
function(out str);

答案 2 :(得分:0)

我同意上面的Ed S.尝试使用StringBuilder,因为您在托管代码和非托管代码之间传递参数。不幸的是,由于你没有本机代码,所以你不会调试太多。