-
-
[求助]cad2008x86版安装在x64系统上内存管理问题。
-
发表于:
2019-2-2 16:59
3226
-
[求助]cad2008x86版安装在x64系统上内存管理问题。
该问题已经困惑很久,比如打开一个大文件,别人只用1.5G就可以,2008可能会占用超过3.9G然后挂掉。
我研究是好几个月(其实是好几个问题归纳),发现最重要的acdb17.dll在x86、x64系统上虽然基址一样,但x64在中间硬生生的插入一段30h的段,也就是部分代码往后移了0x30,当然这也不是什么大问题,像ja自动换成jnb,我也不管。但我发现它很重要的内存管理类AcHeapOperators,它在打开某个ole对象时,分配内存不足,明明要0x24E680个字节和memcpy,申请的首地址竟然是0xFFE34DA1,加起来超过32位了。导致堆栈溢出。然后跳到一个死循环(真的很奇怪,怎么有那么巧的事呢,我想堆栈上的数据也不完全是指向代码区的啊。)
想测试的话可以用insert命令把附件插入到图纸当中。直接打开还是没有问题的。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!