有关VB调用DELPHI写的DLL问题
我用DELPHI6写了一个DLL,目前在VB中能调用并返回正确结果,但有点小问题:VB程序退出时,说XXXXX内存不能WRITE。
仔细考虑后,我怀疑是以下原因:VB调用DLL时用STRING类型的参数并BYREF传递地址,DLL中给该STRING类型的参数赋值(该参数的内存实际上是在DLL中分配的)。VB退出时,自动释放内存,但上述STRING类型参数的内存由于是DLL分配的,无法释放,造成错误。
为了验证我的推测,我又写了一个DLL,用INTEGER做参数,结果不会错误。INTEGER类型的参数的内存是在VB中声明时分配的。
现有以下问题:1、我的推测是否正确?2、如何解决STRING类型参数问题?
谢谢高手指点,感激不尽。