DELPHI的 ShowMessage函数的小缺陷

今天我在XE7的IDE下调试我自己的LUA的时候发现个有意思的事情

我在LUA里调用一个DELPHI里绑定的函数 这个函数的原形如下

function lua_ShowMessage(l : PLua_State) : integer; cdecl;
var
  n, i : Integer;
  msg : AnsiString;
begin
  result := 0;
  n := lua_gettop(l);
  if n > 0 then
  begin
    msg := '';
    for i := 1 to n do
      msg := msg + lua_tostring(L, i);
    ShowMessage(string(msg));
  end;
end;

然后经常多次调用后 内存每次调用都以40多K的速度往上涨,停下来一会后 内存慢慢恢复,关键是内存能恢复到一定的程度,但永远无法恢复到调用之前的状态,所以给我的感觉就像内存泄露,具体是不是泄露也得找个时间用FASMM4试试。

一开始不明白为什么会内存变化这么大,后来尝试将

ShowMessage 换成了MessageBoxA后,再去调用的时候发现内存无任何变化,所以最终我选择了这个函数。

转载于:https://www.cnblogs.com/bbnn38/p/4114631.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值