my $DLL = 'D:\path\to\CrappyLibrary.dll'; my $IP = "192.168.186.140"; my $RegisterClient2 = Win32::API->new($DLL, 'int RegisterClient2(int *pnClientId, char *pszIPAddress)'); ... my $result = $RegisterClient2->Call($client_id, $IP); #### my $RegisterClient2 = Win32::API->new($DLL, 'int _cdecl RegisterClient2(int *pnClientId, char *pszIPAddress)'); #### my $RegisterClient2 = Win32::API->new($S{DLL_path}, 'RegisterClient2', 'PP', 'I', '_cdecl'); my $result = $RegisterClient2->Call($client_id, $IP); #### my $hash{IP} = "192.168.186.140"; my $result = $RegisterClient2->Call($client_id, $hash{IP}); # fails #### int GetServerData2(int nClientId, int *pnSetup, double *pdTime,double *pdX, double *pdY, double *pdZ, double *pdTotal) #### my $GetServerData2 = Win32::API->new($S{DLL_path}, 'GetServerData2', 'IPPPPPP', 'I', '_cdecl'); #### my ($time, $Ex, $Ey, $Ez, $Eabs, $SAR); $time = $Ex = $Ey = $Ez = $Eabs = 5.0; my $result = $GetServerData2->Call($client_id, $read_setup_no, $time, $Ex, $Ey, $Ez, $Eabs);