Задать вопрос
@ebroker

Падает программа при вызове PInvoke?

Из программы на C# (core 3.1) пытаюсь вызвать метод из С++ приложения и при вызове не получаю даже эксепшн программа просто падает с текстом
ConsoleApp6.exe (process 25388) exited with code -1073741819.

С++
extern "C" __declspec(dllexport) void __cdecl test();


С#
[DllImport("C:\\CMakeProject2.exe", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
private static extern void test();


static void Main(string[] args)
{
	try
	{
		   test();
	}           
	catch (Exception e)
	{
		Console.WriteLine(e);
		throw;
	}
}


При вызове test() программа просто падает. Судя по гуглу происходит это из-за разрушения стека, а разрушение стека часто бывает вызвано неправильным прототипом метода при DllImport. Но где здесь может быть ошибка все максимально просто же параметров не вход не на выход нет?
  • Вопрос задан
  • 129 просмотров
Подписаться 2 Простой 4 комментария
Ответ пользователя I Phoenix I К ответам на вопрос (5)
PhoenixX33i
@PhoenixX33i
Возможно, С++ приложение имеет другую разрядность...
https://docs.microsoft.com/en-us/answers/questions...
Ответ написан