У меня есть следующая сигнатура метода на моем c ++ dll:
extern char *bpStringCalc(char *bpDirectory, char *issString);
И я пытаюсь вызвать его из c #, используя это:
[DllImport(@"C:\MuniAxis\Bp\BpDLL.dll", CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static extern string bpStringCalc([MarshalAs(UnmanagedType.LPStr)] string bpDirectory,
[MarshalAs(UnmanagedType.LPStr)] string issString);
Но он продолжает получать этоисключение:
'ConsoleApplication1! ConsoleApplication1.Program :: bpStringCalc' разбалансировал стек.Это вероятно потому, что управляемая подпись PInvoke не совпадает с неуправляемой целевой подписью.Убедитесь, что соглашение о вызовах и параметры подписи PInvoke соответствуют целевой неуправляемой подписи.
Есть идеи?
Спасибо