Я пытаюсь использовать dll Win32 из моего кода perl.
use Win32::API;
$Win32::API::DEBUG = 1;
$function = Win32::API->new(
'mydll.dll', 'int myfunc()',
);
$return = $function->Call();
Но я получаю следующую ошибку:
Win32::API::new: Loading library 'mydll.dll'
(PM)parse_prototype: got PROC 'myfunc'
(PM)parse_prototype: got PARAMS ''
parse_prototype: IN=[ ]
parse_prototype: OUT='int' PACKING='i' API_TYPE=3
FAILED GetProcAddress for Proc 'myfunc': The specified procedure could not be found.
Can't call method "Call" on an undefined value at .\test_dll.pl line 6.
Моя dll скомпилирована с соглашением о вызовах _cdecl. Имеет ли это какое-то значение? Я использую активный Perl 5.14 на Windows 7.
mydll.dll
не содержит функцию с именемmyfunc
без аргументов, возвращающуюint
? - person Jim Garrison   schedule 03.07.2013