# So, I used INT , The following way is working for some other API but not this API :(
That should work.
Given this dll:
#include <stdio.h> __declspec(dllexport) unsigned char __stdcall getChar() { unsigned char c = (unsigned char)( rand() & 0xFF ); printf( "Returning %d\n", c ); return c; }
This script:
#! perl -slw use strict; use Win32::API; my $getChar = Win32::API->Import( 'junkdll', 'int getChar()' ) or die $!, $^E; print getChar() for 1 .. 10;
Produces this output:
C:\test>t-w32api.pl Returning 41 41 Returning 35 35 Returning 190 190 Returning 132 132 Returning 225 225 Returning 108 108 Returning 214 214 Returning 174 174 Returning 82 82 Returning 144 144
Not the most convenient form (numeric) to receive 'char' data, but you seem to want the numeric value anyway. You're just working too hard at trying to convert the value when there is no need to.
In reply to Re: How to use 'unsigned char' C data type with Win32::API
by BrowserUk
in thread Solved: How to use 'unsigned char' C data type with Win32::API
by sam_bakki
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |