Начните с прочтения документации .Это дает подпись в виде:
BOOL IsWow64Process2(
HANDLE hProcess,
USHORT *pProcessMachine,
USHORT *pNativeMachine
);
В качестве пинвойка:
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool IsWow64Process2(
IntPtr process,
out ushort processMachine,
out ushort nativeMachine
);
Я не знаю, откуда пришла ваша попытка, но она не выглядит как правильное объявление, ина самом деле даже название функции неверно.Программирование взаимодействия - все о деталях и согласовании одного двоичного интерфейса с другим.Вы не можете изобрести интерфейс.Такие детали, как передаваемые параметры, имя функции и т. Д., Должны совпадать.
Вы можете назвать это так:
ushort processMachine;
ushort nativeMachine;
if (!IsWow64Process2(GetCurrentProcess(), out processMachine, out nativeMachine))
throw new Win32Exception();
Вам также нужно объявление для GetCurrentProcess
.Вы можете использовать это:
[DllImport("kernel32.dll")]
private static extern IntPtr GetCurrentProcess();