DLL动态库中,用接口封装的类不能动态调用?! ......郁闷哪(50)

  • 主题发起人 主题发起人 fwd
  • 开始时间 开始时间
F

fwd

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3958649将所有的细节都去掉,只有返回的接口.还是不行。静态调用可以。动态就不行了。不知为什么!同样的代码将返回值接口改为其它类型(如:string)就有调用,怪不怪!感兴趣的试一试,看是不是这种情况!
 
同意楼上说的~~最好两边都要加sharemen
 
result :=nil; //新增一行FreeLibrary(Handle); 建议使用dll时,不要使用string,而是使用pchar或者类似于String[500]。
 
用 FastMM4, FastMM4Messages,
 
result :=nil; //新增一行要返回接口,却给个NIL行吗?
 
银雨辰:我用的是FastShareMem, FastMM4,是不是同样功能呀,高版本吗?
 
result :=nil; //新增一行要返回接口,却给个NIL行吗?--------------当然不可以,针对你说的这个错误,我想知道错误的原因。我怀疑是因为释放动态库的时候,DLL中调用了一次接口函数_Release,应用程序中又调用了一次_Release函数,从而导致异常的。你这样测试一下,如果没有问题,那就按照另外一个帖子中说的,等用完这个接口再释放动态库。
 
finally FreeLibrary(Handle); 晕死你创造主体都释放了 返回的对象怎么可能还存在 FreeLibrary(Handle); 去掉就好了 释放也只能是先释放接口在是dll
 
多人接受答案了。
 
后退
顶部