我有一个C++文件,其中包含一些我在 C# 中调用的导出函数。其中一个功能是:
char segexpc[MAX_SEG_LEN];
extern "C" QUERYSEGMENTATION_API char* fnsegc2Exported()
{
return segexpc2;
}
在程序的某个地方,我也在做这件事:
if(cr1==1)
{
strcpy(segexpc, seg);
}
在我的C#程序中,我通过以下方式调用上述内容:
[DllImport("QuerySegmentation.dll", EntryPoint = "fnsegcExported", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern StringBuilder fnsegcExported();
this.stringbuildervar = fnsegcExported();
以前,我没有收到任何错误,但现在我在 Visual Studio 中调试时突然开始收到此错误。
Windows has triggered a breakpoint in SampleAppGUI.exe.
This may be due to a corruption of the heap, which indicates a bug in SampleAppGUI.exe or any of the DLLs it has loaded.
This may also be due to the user pressing F12 while SampleAppGUI.exe has focus.
此错误仅在必须显示窗口之前出现在最后。我没有按任何 F12 键,也没有在此处设置任何断点,但我不确定为什么此时会发生错误并中断。 this.stringbuildervar = fnsegcExported();
当我按下继续时,会出现带有正确输出的窗口。