Borland Delphi 7 FastMM RTL 补丁(0分)

  • 主题发起人 主题发起人 LSUPER
  • 开始时间 开始时间
再问:
看到Demo中的DLL和EXE中都要
uses
ShareMem
那么用Delphi做的DLL在其它语言中使用时,其它语言会不会因为ShareMem受到影响?
谢谢!
 
其他语言不能理解 Delphi 中的 string、动态数组等数据类型啊(当然,除了 Delphi 的“胞兄”C++ Builder),所以你 exports 时不应该使用这些 Delphi “特有”的生存期间自管理的数据类型,而应该使用 pchar 等,而这些不需要 ShareMem 的啊。
 
最好使用OleVariant变量类型传递字符串
1.OleVariant是又操作系统支持的标准变量类型,跨语言平台不是问题;
2.该变量类型是由操作系统保证的自动释放变量类型,不会存在内存泄露,目前的Com+应用都是采用OleVariant变量传递字符传变量的,大数据量转移稳定可靠.变量的分配由操作系统的Dll中完成,类似于BorlandMM的功用;
3.唯一的缺点,速度比普通字符串稍慢点
 
强贴,做个记号[:D]
 
大家有没有发现,就算是只有一个空的窗体的 Delphi 程序,占的内存都在 2M 以上,而 VC 写的程序可以控制在 2M 以下,有办法使Delphi写的程序少占用内存吗?
(使用SetProcessWorkingSetSize()函数的方法不算)
 
to:狂迷
不用vcl就占用小了。直接用pascal 调api
delphi和vc各有优势,非要什么优点都集一身是奢望。
 
satanmonkey: Delphi + Kol 是没用到 Vcl 的,文件小了只有十几K,但占用的内存并没有少到.
 
to 狂迷,
kol还不是Framework,你是才出虎穴又入狼窝
你直接用pascal调用api写程序.就占用小了.不过不提倡.
vcl的好处是开发快.mfc写的东西占用内存是比vcl出来的小点.不过开发起来就不快了.
同样使用pascal和c++来sdk的话.pascal是要比C++略大,不过差别不大.没有mfc和vcl的差别那么大.另外vc还可以用wtl,好像更小.
 
我按操作说明运行了Replace.bat,提示复制文件完成.但是当我运行Demo时,提示
Borland ShareMem not Used!

....请问运行了Replace.bat后还要做其它动作吗?
 
哦,应该可以了,看错了.
 
www.source520.com 再次更新近3万代码,全部免费免注册狂下载
 
楼主,我下载了 FastMM464
并且已经将 FastMM.pas 和 FastMM4Messages.pas 和 FastMM4Options.inc 放在library path中
编译了 BorlandMM.dll 和 FastMM_FullDebugMode.dll 将他们放在了 delphi7/bin 下,先不关是不是提高了速度,我的 delphi 退出后,delphi32.exe 进程结束不了,什么问题。
 
kinneng 很无知
典型的中国小乡无作为派.

劝你改行 ,你年纪大了,接受事物能力不行了
 
bjyplbx:
不用 Debug 版的 DLL 就行了!
 
我不知很了解这个
请问 debug 版是指的什么呢?
 
请问lz,在dpr中加了uses sharemem,运行原来的程序,出现提示窗口 :the memory manager cannot be changed after it has been used,如何解决(运行环境:2003,delphi7 8.1)
 
知道了,要第一个引用才行
 
您好,我已改了安装目录,运行Replace.bat时如下:
E:/Program Files/Borland/delphiFastMM_RTL/RTL>Replace.bat
Could Not Find E:/Program Files/Borland/delphiFastMM_RTL/RTL/*.dcu
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
23837 lines, 0.27 seconds, 41681 bytes code, 12828 bytes data.
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
45 lines, 0.01 seconds, 70 bytes code, 4 bytes data.
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
23837 lines, 0.29 seconds, 41849 bytes code, 12828 bytes data.
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
45 lines, 0.02 seconds, 70 bytes code, 4 bytes data.
1 file(s) copied.
1 file(s) copied.
1 file(s) copied.
1 file(s) copied.
1 file(s) copied.
1 file(s) copied.
1 file(s) copied.
Press any key to continue . . .
想问一下,这个:
Could Not Find E:/Program Files/Borland/delphiFastMM_RTL/RTL/*.dcu
是什么意思???
谢谢
 
to 楼主,你提供的system.pas的备份安装了d7的几个patch?
我发现我系统中原来的system.pas和你提供的包中的有一点点不同,如下:

function LoadResString(ResStringRec: PResStringRec): string;
var
Buffer: array [0..4095] of char;//我系统中的system.pas
Buffer: array [0..1023] of char;//你提供下载的包中的backup目录内的system.pas
 
另外大家是否发现使用楼主提供的system.pas,比直接使用fastmm等"fast"一族,有一个很大的好处,就是程序启动时不再需要替换原已载入的内存管理器的过程,而节省了1-3秒(我的CASE)的启动时间?

thanks to lsuper again :)
 
后退
顶部