|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите перевести
Добрый день.
Помогите вызвать функцию IST_GetMotionEventLogRecords в Delphi Это функция из Dll библиотеки ISTApi32.dll В интернете все что смог найти это кусок кода на С Код:
wchar_t* ISTFallSensor::JSON_EventLog(int nRecords) { wchar_t* returnstring = new wchar_t[8192]; memset( returnstring, 0, 8192 * sizeof(TCHAR) ); HINSTANCE hIstDLL; DWORD (*IST_Open)(TCHAR *, HANDLE *) = 0; DWORD (*IST_Close)(HANDLE) = 0; DWORD (*IST_GetMotionEventLogCount)(HANDLE, DWORD, PDWORD) = 0; DWORD (*IST_GetMotionEventLogRecords)(HANDLE, IST_LOG_RECORD[], int, PINT) = 0; hIstDLL = LoadLibrary(L"ISTAPI32.dll"); if(hIstDLL && nRecords > 0 ){ IST_Open = (DWORD (__cdecl *)(TCHAR *, HANDLE *))GetProcAddress(hIstDLL, L"IST_Open"); IST_Close = (DWORD (__cdecl *)(HANDLE))GetProcAddress(hIstDLL, L"IST_Close"); IST_GetMotionEventLogCount = (DWORD (__cdecl *)(HANDLE, DWORD, PDWORD))GetProcAddress(hIstDLL, L"IST_GetMotionEventLogCount"); IST_GetMotionEventLogRecords = (DWORD (__cdecl *)(HANDLE, IST_LOG_RECORD[], int, PINT))GetProcAddress(hIstDLL, L"IST_GetMotionEventLogRecords"); HANDLE phIst = INVALID_HANDLE_VALUE; DWORD openStatus = IST_Open( _T("IST1:"), &phIst ); if ( openStatus == IST_ERROR_SUCCESS ) { DWORD dropsD; IST_GetMotionEventLogCount(phIst, FREEFALL, &dropsD); int drops = (int)dropsD; if ( nRecords > drops ) nRecords = drops; if ( nRecords > 32 ) nRecords = 32; int pnRecords = 0; IST_LOG_RECORD eventlog[32] = {0}; DWORD getStatus = IST_GetMotionEventLogRecords(phIst, eventlog, drops, &pnRecords); DWORD getStatus = IST_GetMotionEventLogRecords(phIst, eventlog, nRecords, &pnRecords); |