Я пытаюсь преобразовать проект C # в Delphi, сам код C # импортирует функции из собственной dll, позвольте нам назвать его dmp.dll, у меня нет подписи его собственных функций, и я должен посмотреть, как эти функции импортируются в C # и пытаются импортировать их в код Delphi, и я действительно импортировал их много, и они работают нормально, но теперь я борюсь с этой функцией (StartLogging
). Вот как они импортированы в C #:
[DllImport("dmp.dll", CharSet = CharSet.Auto, EntryPoint = "StartLogging")]
public static extern int StartLogging(String AdapterName,
PLOG_RECORD_CALLBACK LogRecordCallback,
SafeWaitHandle StopLoggingEvent);
нет проблем с PLOG_RECORD_CALLBACK
, но проблема в этом параметре SafeWaitHandle
, который является классом, существующим в пространстве имен Microsoft.Win32.SafeHandles
. Как его перенести на Delphi? Какой тип данных эквивалентен ему в Delphi?
И вот как они используют это в коде C #:
AutoResetEvent StopEvent = new AutoResetEvent(false);
Класс AutoResetEvent
существует в System.Threading
Затем они вызывают метод следующим образом:
StartLogging(comboBox1.Text, CallbackProcedure, StopEvent.SafeWaitHandle);
Затем, наконец, чтобы остановить ведение журнала, они используют:
StopEvent.Set();
Я действительно сбит с толку и не знаю, как это сделать, благодарю за вашу помощь. Спасибо