无法在Win32 :: API中检测DLL路径

时间:2014-07-16 11:39:48

标签: perl winapi dll activeperl

我正在尝试在Perl中导入C ++ DLL(Active Perl 5.12.2 Build 1202)。 我的子程序是:

sub _import
    {
        my ($func,$params)=@_;
        print "DLL Pass value: $func $params \n";
        my $retVal= new Win32::API($MY_DLL,$func,$params,'I');
        croak("Failed to import $func from $MY_DLL \n") if(!$retVal);
        return $retVal;
    }

我已添加use Win32::API;,我已定义use constant MY_DLL => 'D:\MyData\MYDLL_CON'; # name of the dll

当我调用_import("Init",'P');(" Init"接受指针的函数)时,我得到了什么,命令行打印:

DLL Pass value: Init P Failed to import Init from

请注意,有一个<空间>之后"来自"。 DLL存在于路径上,但仍然是WIN32:API函数将其视为空白!相同的perl脚本适用于某台机器,并且在某台机器上无法工作(给出上述错误)。所有机器都具有相同的配置以及相同版本的Perl和所有内容。但是它在很少的机器上找到DLL并且没有休息!

Dependency Walker没有显示DLL的任何依赖性错误。

我无能为力!

1 个答案:

答案 0 :(得分:0)

$MY_DLLMY_DLL不同。摆脱$