|
Prev: FAQ 2.3 I don't have a C compiler. How can I build my own Perl interpreter?
Next: FAQ 1.14 What is a JAPH?
From: Susanne West on 21 Apr 2008 09:20 i have the following c-code that sould send out a command through deviceIO using win32api::file, and i'm struggling with the proper handling of the code. the result of my DeviceIoControl() command is always NULL... #! perl # ------------------------------- # c-code: # define BUFF_SIZE 0x2c # HANDLE hHandle = CreateFileA("\\\\.\\APPDRV", # GENERIC_READ|GENERIC_WRITE, 0, # NULL, OPEN_EXISTING, 0x80, NULL); # # char buffer[BUFF_SIZE]; # memset(buffer, 0, BUFF_SIZE); # buffer[0] = 0x04; # buffer[1] = 0x00; # buffer[2] = 0x06; # buffer[3] = 0x00; # buffer[4] = 7; # buffer[5] = 7; # # DWORD bytesReturned; # BOOL result = DeviceIoControl(hHandle, 0x23209C, # buffer, BUFF_SIZE, buffer, BUFF_SIZE, &bytesReturned, NULL); #------------------------------- # #for testing, this should translate into the following: $hDevice = createFile("\\\\.\\APPDRV", "rw", '' ); if (! $hDevice){ die("Could not open device! \n"); } print "Device open\n"; #this seems to be working $buffer = chr(04) . chr(0) . chr(06) . chr(0) . 7 . 7 . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0) . chr(0); $res = DeviceIoControl( $hDevice, 0x23209C, $buffer, 44, $opOutBuf, 44, $olRetBytes, $pOverlapped ); if (! $res){ print "IO control failed\n"; } # this fails am i missing something here? thanks for any hints...
From: smallpond on 21 Apr 2008 12:56
On Apr 21, 9:20 am, Susanne West <sw...(a)gmx.de> wrote: > i have the following c-code that sould send out a > command through deviceIO using win32api::file, and > i'm struggling with the proper handling of the code. > the result of my DeviceIoControl() command is always > NULL... > > #! perl #!/usr/bin/perl use warnings; use strict; > am i missing something here? > Yes. You are missing the error messages for your undefined functions. --S |