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 をキャッチしようとしましたが、役に立ちませんでした。