D7运行正常,XE3下的32位编译也无问题,XE3下的64位编译出现内存错误,各位从D7到XE的大神们有遇到过的么?[dcc64 致命错误] : F2046 Out of memory
已经尝试了以下几种情况
1/工程-属性-delphi compiler-linking-debug information设置为false ,无效
2/安装DDevExtensions285,勾选“Relase comiler unit cache of other projects before compiling” 无效
3/程序中所有的 array of xxxxxxx以及OleVarian在程序结尾均设置了Finalize(xx)或者setlength(xxx, 0)或xxx:=nil  无效系统为64位win10+ XE317.0.4625.53395 ,安装的源文件为Embarcadero.Delphi.XE3.RTM.v17.0.4625.53395.Lite.v6.0
然后汉化了下
难不成xe3和vba程序一样,有代码行数的限制,超过了就报错?
请各路神仙各显神通吧,多谢多谢!

解决方案 »

  1.   

    编译时就Out of memory,应该是初始化数据太大,而编译为32位程序没有问题,说明程序中某个数据结构分配的大小可能是一个错误的用法,只不过在编译为32位代码时这个大小截断为32位,问题没有暴露出来。
      

  2.   

    A memory block has been leaked. The size is: 12This block was allocated by thread 0x11BC, and the stack trace (return addresses) at the time was:
    402E08 [system.pas][IdGlobal][@GetMem][2439]
    404A15 [system.pas][System][@NewAnsiString][11872]
    4049A8 [system.pas][System][@LStrAsg][11780]
    4D0D3E [jpeg][jpeg][..]
    76E6336A [BaseThreadInitThunk]
    77979882 [Unknown function at RtlInitializeExceptionChain]
    77979855 [Unknown function at RtlInitializeExceptionChain]各位大神,用fastmm4检查出来的部分信息,这是不是说明造成内存泄露的是软件提供的系统函数等?