Member 13612015 Ответов: 0

Определяемые пользователем входные параметры в DLL файле


У меня есть проект на c++ с методом
int recvPDU(mmslib::MMSpdu_PDU* pdu, mmslib::mms_Control* ctl);
который имеет определенные пользователем входные параметры.

Я хочу использовать этот метод в проекте c#, создав dll метода recvPDU. Я успешно создал библиотеку dll. Но я не могу понять, как использовать dllimport.

Что я уже пробовал:

Код C# выглядит следующим образом:


[DllImport(@"C:\\Riddhi_GIT\\IEC 61850 Lib\\Debug\\Prototype_IECServer.dll")]
       
 private static extern int recvPDU(... pdu, ... ctl);


Путь к библиотеке dll правильный. Но мне нужна помощь, чтобы поставить тип данных вместо этого ... в атрибута DllImport.

Richard MacCutchan

Поскольку оба параметра являются указателями, вы можете использовать тип IntPtr. Вам также нужно будет создать структурное отображение для каждого параметра: Класса Атрибута Structlayoutattribute (Системы.Во время выполнения.InteropServices)[^].

Member 13612015

Спасибо за ваш ответ. Я новичок в c++. Я никогда над этим не работал. К тому же код, который я использую, написан кем-то другим. Я не знаю, как создать структурное отображение. Можете ли вы показать мне пример?

Richard MacCutchan

Пример приведен в ссылке, которую я привел выше.

Member 13612015

Йа. Я понял это позже. Большое спасибо

0 Ответов