Bonjour a tous,
J'essaye de porter une petite application C# en Delphi, celle-ci fait appel a des fonctions dans une DLL en C++. Pour une des fonctions je n'arrive pas a déterminer le type d'argument en Delphi a passer. La fonction C++ est la suivante:
L'appel de cette fonction en C# se fait de la manière suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 NDISMONLIB_API BOOL StartLogging(LPTSTR pszAdapterName,PLOG_RECORD_CALLBACK LogRecordCallback, HANDLE StopLoggingEvent) { if( (!pszAdapterName) || (StopLoggingEvent == NULL) ) { return( FALSE ); } PTHREAD_CONTEXT ThreadData = new THREAD_CONTEXT(); ThreadData->LogRecordCallback = LogRecordCallback; ULONG AdapterNameLength = wcslen(pszAdapterName); ThreadData->AdapterName = new WCHAR[AdapterNameLength + 1]; CopyMemory(ThreadData->AdapterName,pszAdapterName,AdapterNameLength*sizeof(WCHAR)); ThreadData->AdapterName[AdapterNameLength] = NULL; ThreadData->StopLoggingEvent = StopLoggingEvent; HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)RetrieveLogRecordsThread, ThreadData, 0, NULL); if ( hThread == NULL ) { return FALSE; } return TRUE; }
Savez vous vous quel est le paramètre a passer en Delphi, équivalent a StopEvent.SafeWaitHandle en C# qui semble etre un "handle en C++" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void button1_Click(object sender, EventArgs e) { NdisMonLib.StartLogging(comboBox1.Text, CallbackProcedure, StopEvent.SafeWaitHandle); }
Merci
Partager