char __stdcall CDllTest::sum_char(char a, char b) { char c ; int temp; temp = (int)a + (int)b; c= (char)temp; printf("temp value %d\n",temp); printf("Afrer conversion%c\n",c); printf("%d,%d,%c\n",a,b,c); return c; } #### #!/usr/bin/perl -slw #use strict; #use warnings; use Win32; use Win32::API; use Win32::API::Callback; use Win32::API::Test; my $num; my $fun = Win32::API->new('Test.dll','char sum_char(char a,char b,char c)') or die $^E; print "$fun\n"; my $character = chr(49); print "$character\n"; my $character1 = chr(50); print "$character1\n"; $num = $fun->Call($character,$character1); print "$num\n"; #### D:\strawberry\perl\bin>perl Test.pl Win32::API=HASH(0x3faa74) temp value 106 Afrer conversion j(o/p printf on C++ side) 53,53,j(o/p printf on C++ side) Use of uninitialized value $num in concatenation (.) or string at Test.pl line 40.