Показать сообщение отдельно
Старый 09.10.2003, 06:14   #3  
Wing is offline
Wing
Участник
 
12 / 10 (1) +
Регистрация: 08.10.2003
Адрес: Томск
? Обертка к WriteFile уж очень нужна.
Именно из WinAPI::createFile я и скопировал обертку к CreateFile, внеся все необходимые коррективы.
Но то же самое сделать для функции WriteFile не получается. Видимо я не до конца понял механизм изготовления таких оберток.
Пробовал сделать так:
PHP код:
    DLL         _winApiDLL      = new DLL('KERNEL32');
    
DLLFunction _writeFile      = new DLLFunction(_winApiDLL'WriteFile');

    
_writeFile.returns( BOOL );
    
_writeFile.arg(int);
    
_writeFile.arg(ExtTypes::Pointer);
    
_writeFile.arg(int);
    
_writeFile.arg(int);
    
_writeFile.arg(ExtTypes::Pointer); 
но ни BOOL, ни boolean внутри _writeFile.returns не принимается.
Сама функция:
PHP код:
BOOL WriteFile(
    
HANDLE hFile,    // handle to file to write to
    
LPCVOID lpBuffer,    // pointer to data to write to file
    
DWORD nNumberOfBytesToWrite,    // number of bytes to write
    
LPDWORD lpNumberOfBytesWritten,    // pointer to number of bytes written
    
LPOVERLAPPED lpOverlapped     // pointer to structure needed for overlapped I/O
   
); 
Все предложенные в прошлом сообщении варианты не позволяют писать напрямую в порт.