在Visual Studio 2010 C#应用程序中,我正在调用非托管dll:
[DllImport("cyghello.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static extern string runMainRoutine(char[] _inputString);
C ++ dll是在mingw / cygwin下构建的; 在此之前,我有* .exe,它工作正常,然后我只是改变功能为extern。所以这不是依赖性问题。
当我打电话给函数时:
string res = runMainRoutine(("balbalbalblalb").ToCharArray());
它只是默默关闭应用程序。没错。没有调试信息。 (在项目选项中勾选调试非托管代码)
怎么办?如何理解,发生了什么?
我试图捕获UnhandledExceptionEventHandler,但这没有帮助。