| 
			
			 
			
				13.02.2016, 03:35
			
			
			
		 | 
	| 
		
			
			| Прохожий |  | 
					Регистрация: 13.02.2016 Сообщения: 4
 Версия Delphi: 2010 Репутация: 10     |  | 
	| 
				 Помогите перевести 
 Добрый день. 
Помогите вызвать функцию 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); |