Я пытаюсь преобразовать проект 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 # Code:
AutoResetEvent StopEvent = new AutoResetEvent(false);
Класс AutoResetEvent
существует в System.Threading
Затем они вызывают метод следующим образом:
StartLogging(comboBox1.Text, CallbackProcedure, StopEvent.SafeWaitHandle);
Затем, наконец, и для остановки регистрации они используют:
StopEvent.Set();
Я действительно запутался и не знаю, как это сделать, благодарю вас за помощь.
Спасибо