C # — PInvoke из службы Windows

Я пытаюсь вызвать функцию cpp dll из службы Windows C #, но каждый раз, когда он делает вызов — служба немедленно останавливается и не отображает никаких ошибок или выдает исключения, а журналы событий пусты. Я также попытался сделать вызов PInvoke через другую сборку (вне службы), и это работает. Служба компилируется в x86 (так же, как сборка).

Есть идеи?

Ниже мой код:

[DllImport(@"C:\Test.dll",
EntryPoint = @"TestFn",
SetLastError = true,
CallingConvention = CallingConvention.Cdecl)]
private static extern int TestCppDll();

чтобы вызвать меня просто позвонив TestCppDll();

Это исправило мою проблему:

Я изменил TestFn fn в коде cpp из

extern "C" __declspec(dllexport) int
TestFn()
{
return 1;
}

Для того, чтобы:

extern "C" __declspec(dllexport) int __stdcall
TestFn()
{
return 1;
}

Затем я изменил соглашение о вызовах в c # для использования std вместо Cdecl

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]