日期:2014-05-17  浏览次数:20481 次

!!!要疯了,求高人指点,关于Dllimport提示“无法加载dll”
用的.net 1.1,网站Dllimport一个delphi写的dll,提示“无法加载 DLL (DllName.dll)。”;

跟踪检查后找到是dll里执行到一个控件做实例化时出错。测试过各种环境xp、2003下发布没问题的,到了win7 32位、64位、2008就都是同样提示这个错了,求高人指点呀,感激不尽!!


网站Dllimport代码:
  [DllImport('DllName.dll',
     EntryPoint='Report_Export',
     CharSet=CharSet.Auto,
     CallingConvention=CallingConvention.StdCall)]

-------------------------------------------------
DllName.dll里:

type
  TAAAObject=class(TObject)

    Gear:TGear;

    constructor Create; virtual;
    destructor Destroy; override;
  end;

constructor TAAAObject.Create;
begin
  inherited Create;

  Gear:=TGear.Create(Application);  //到这里就出错了,试过注释这句就能通过

end;

----------------------------
总结了下,
asp.net 1.1 + IE 6、7、8 +(XP、Win2003)没问题,
asp.net 1.1 + IE 8、9 + (Win7 x86、Win7 x64、Win2008)均有问题。

还请各路英雄帮忙分析下哪里出了问题!!

------解决方案--------------------
第一,确认是否名字是DllName
第二,确认dll的路径,如果不指名绝对路径,那么默认在系统目录或exe同目录下等5个地方,其他路径不认
------解决方案--------------------
需不需要注册,需不需要放在系统目录下(system32),需不需要添加引用,路径正确吗?是系统兼容性的问题吗? 换个asp.net 版本,比如2.0能通过吗?