Я использую PERL 5.8.8, и я не нашел способа прочитать PrivateKEY в формате pkcs # 8 в perl, поэтому я пытаюсь создать dll в C #, который может это сделать, поэтому я могувызовите методы оттуда.
Я вижу, что модуль для этого:
Win32 :: API
Пример, который они показывают, это:
use Win32::API;
$function = Win32::API->new(
'mydll, 'int sum_integers(int a, int b)',
);
$return = $function->Call(3, 2);
Проблема в том, что в этом примере я могу иметь прямой доступ к функции sum_integers, но Как я могу вызвать мою функцию sum () с этой структурой из PERL?:
namespace testCreateDLLToUseInPERL
{
public class Test
{
public Test(){
}
public int sum(int n1, int n2)
{
return n1 + n2;
}
}
}
Я пробовал:
Win32::API::Struct->typedef( Test => qw{ });
Win32::API->Import('testCreateDLLToUseInPERL', 'Test::sum(int a, int b)');
my $myObj = Win32::API::Struct->new('Test');
print Dumper($myObj );
Приведенный выше код завершается ошибкой с сообщением:
системе не удалось найти введенную опцию среды
$function = Win32::API->new(
'testCreateDLLToUseInPERL', 'int sum(int a, int b)',
);
print Dumper($function);
print Win32::FormatMessage( Win32::GetLastError() );
$return = $function->Call(3, 2);
print $return;
Приведенный выше код завершается с сообщением:
Указанная процедура не может быть найдена
Итак, я понимаю, что DLLбыл загружен правильно, но я не указал правильный путь для достижения этой функции.
Есть идеи?