将ReportMachine3.0做成的DLL,退出时为什么总提示地址内存错? (100分)

  • 主题发起人 主题发起人 eastnet
  • 开始时间 开始时间
E

eastnet

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ReportMachine3.0做在一个DLL里,供其他程序调用,
每次退出主程序时都要提示DLL里的一个form应用程序错误:
"0x00633dea"指令引用的"0x0134ee14"内存。该内存不能为"read".
DLL的函数是这样声明的:
procedure PrintW(H: THandle;remotedbconn,writsort,filecode,other:string);
在最后调用的form的onclose里释放:
if not assigned(DM) then
DM.Free;
if not assigned(RMRepSrc) then
RMRepSrc.Free;
//这个窗口存放一些rm的相关资源文件
调用方法如下:
PrintW(Application.Handle,remotedbconn,'writ2',callfcode(IsEmpWrt),'0');
可退出时就是报错,不知怎么解决?
 
谢谢大家参与,分不够再加!
 
看来我今天是死定了!
 
检查打印机
 
你是在2000下吗?如果是你检查一下打印机连接是否有问题,如果是98程序代码需要修改一下,或者你下载一个最新的就没有这种问题了。
 
就你最倒霉了!
我就没有遇到过这样的问题,重装RM可能就好了!
 
5555555555555,没人顶啊
 
那你就跳吧!
 
to 各位dfw,不要这样刺激我好不好!
 
踢。。。。。。。。。。。。
 
用PCHAR代替STRING试试看
 
为什么用PCHAR呢,我的STRING用的很多,估计有几百个变量吧.
 
引用ShareMem单元,像这们的(一定要在第一个位置)
program WWGlofMgr;
uses
ShareMem,
Forms,
GlofMgr in 'GlofMgr.pas' {fmMain},
sFlash in 'sFlash.pas' {fmFalsh};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TfmMain, fmMain);
Application.Run;
end.
 
谢谢二位,我试试
 
to hgood,还是不行啊,我在program文件的uses第一个位置上加了ShareMem,现在错误提示又换了:
"应用程序发生异常 未知的软件异常(0x0eedfade),位置为0x77e6a4e1."
 
我这边是把FastReport做成dll,开始也出错,后来引用ShareMem就ok,不过不知道你怎么封装成Dll!:)
 
to hgood,谢谢你,也谢谢大家!
问题解决了,我在DLL里和工程文件里的uses后都加
一个ShareMem就行了。
散分!
 
多人接受答案了。
 
后退
顶部