DLL中可以包括全局变量及对全局变量的处理吗? ( 积分: 30 )

  • 主题发起人 主题发起人 iambox
  • 开始时间 开始时间
I

iambox

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:<br>interface<br>uses....<br>....<br>procedure init;stdcall;<br>procedure add(astr:String);stdcall;<br>var a:TStringList;<br>implementation<br><br>procedure init;<br>begin<br> &nbsp;a:=TStringList.Create;<br>end;<br><br>procedure add(...) ;<br>begin<br> &nbsp;a.add(astr);<br>end;<br>那么上面这两个函数export的话是否会引发有关内存的什么问题?<br>为什么我在调用init的时候程序就死掉了?谢谢
 
例如:<br>interface<br>uses....<br>....<br>procedure init;stdcall;<br>procedure add(astr:String);stdcall;<br>var a:TStringList;<br>implementation<br><br>procedure init;<br>begin<br> &nbsp;a:=TStringList.Create;<br>end;<br><br>procedure add(...) ;<br>begin<br> &nbsp;a.add(astr);<br>end;<br>那么上面这两个函数export的话是否会引发有关内存的什么问题?<br>为什么我在调用init的时候程序就死掉了?谢谢
 
会的, 需要引用 ShareMem 单元,<br><br>另: init 也不应该死掉的
 
你指的是哪个全局,如果是DLL内的当然可以啦
 
sharemem用了以后,似乎症状依旧,请教sharemem的具体用法,谢谢
 
sharemem放在uses的第一个位置,但楼上的程序来看,与它没有关系
 
To kinneng:<br>那是为什么呢?谢谢
 
程序死了一阵以后,报错,说delphi安装目录下的/bin/initcc32.exe无法访问,其他程序正在使用该文件。然后必须强制终止程序才行。
 
我也看不太清楚,代码这么少,内存应该没有问题,其实全局变量不太好,我最怕用了,<br>你完全可以写接口来管理它。<br><br>/bin/initcc32.exe无法访问,是因为调试的时候,除了问题,你的程序死在内存,一般要重启delphi,甚至重启Windows
 
后退
顶部