读书人

!要疯了求圣人指点关于Dllimport

发布时间: 2012-12-16 12:02:32 作者: rapoo

!!!要疯了,求高人指点,关于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)均有问题。

还请各路英雄帮忙分析下哪里出了问题!!
[解决办法]
windows 7对这种貌似是有问题的,我以前也是在windows7中不能导入,但是到windowsxp中却行
[解决办法]

引用:
windows 7对这种貌似是有问题的,我以前也是在windows7中不能导入,但是到windowsxp中却行


后来可有解决吗?



难道真没办法了吗。。。。。。。。:(
[解决办法]
是不是权限问题
[解决办法]
这样试下;
type
TAAAObject=class(TObject)

Gear:TGear;

constructor Create;
destructor Destroy; override;
end;

constructor TAAAObject.Create;
begin
inherited Create;

Gear:=TGear.Create;

end;
[解决办法]
引用:


不可以的,.Create后面要有参数,.Create()都不行。
[解决办法]
把dll文件放到system32目录下试试。
[解决办法]
引用:
把dll文件放到system32目录下试试。


不用放的(也放过,一样不行的)
[解决办法]
试试右键以管理员的身份运行程序。
[解决办法]
注册DLL试试
[解决办法]
该回复于2012-08-01 10:03:36被版主删除
[解决办法]
不太理解

读书人网 >.NET

热点推荐