Сигнатура PInvoke и разбалансированный стек - C#
Формулировка задачи:
Здравствуйте.
Я подключаю стороннюю библиотеку и описываю её метод:
Но при попытке вызвать метод возникает исключение:
Проверил, что тип возвращаемых данных и тип параметра правильные. Погуглил, дописал подключение dll вот так:
Всё равно тоже самое. Что ещё следует проверять?
[DllImport(@"CPRGL2.dll")] public static extern long OpenAccess(int AccessHandle);
Вызов функции PInvoke "LaserDevice!LaserDevice.LaserDevice::OpenAccess" разбалансировал стек. Вероятно, это вызвано тем, что управляемая сигнатура PInvoke не совпадает с неуправляемой целевой сигнатурой. Убедитесь, что соглашение о вызовах и параметры сигнатуры PInvoke совпадают с неуправляемой целевой сигнатурой.
[DllImport(@"CPRGL2.dll", CallingConvention=CallingConvention.Cdecl)]
Решение задачи: «Сигнатура PInvoke и разбалансированный стек»
textual
Листинг программы
[StructLayout(LayoutKind.Sequential, Pack=1)] public class PUNIT_PARAMETER { public long IntegrationTime; public Byte Gain; public Byte TiggerEdge; public Byte TiggerMode; public Byte LDPower; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д