我想將C#項目轉換爲Delphi,C#代碼本身是從本機DLL導入函數讓我們將其命名爲'dmp.dll',我沒有它的本機功能的簽名,我必須看看如何這些函數在c#中導入並嘗試在Delphi代碼中導入它們,並且我導入了很多它們,它們工作正常,但現在我正在使用此函數(StartLogging
)掙扎。這是他們在C#中如何導入:將C#代碼轉換爲Delphi,相當於SafeWaitHandle的功能是什麼?
[DllImport("dmp.dll", CharSet = CharSet.Auto, EntryPoint = "StartLogging")]
public static extern int StartLogging(String AdapterName,
PLOG_RECORD_CALLBACK LogRecordCallback,
SafeWaitHandle StopLoggingEvent);
此參數SafeWaitHandle
沒有問題有關PLOG_RECORD_CALLBACK
,但問題是它是類Microsoft.Win32.SafeHandles
命名空間存在。我如何將它移植到Delphi? Delphi中的等效數據類型是什麼?
這裏是他們如何使用它在C#代碼:
AutoResetEvent StopEvent = new AutoResetEvent(false);
類AutoResetEvent
存在System.Threading
然後他們調用的方法是這樣的:在最後
StartLogging(comboBox1.Text, CallbackProcedure, StopEvent.SafeWaitHandle);
然後和停止他們使用的測井:
StopEvent.Set();
我真的很困惑,我不知道該怎麼做,感謝你的幫助。 謝謝
在這種情況下,它聽起來像一個事件句柄。由CreateEvent API返回。不記得Delphi RTL是否提供了TEvent包裝。 –