MAPX的几点问题解决

最近在用mapx时碰到了不少问题,
第一个问题
程序一运行到图层添加永久表时就报
address 73D37576 in MFC42.DLL can not write at address 00000008 大概是这么写的,当时没抄下来。
开始怀疑是mapx装的不对,重装,不行。怀疑系统有问题,重装,不行。机器硬件,换机器,不行。
慢慢的发现出错的时候每次后面生成的文件大小不正常,大小和生成完后的大小一致,按理新创建的图层大小要么是0要么是1,抓住这个问题,验证是不是删除文件时没删干净,于是在删文件后停顿了5秒,结果还是一样。再分析原因,发现有个同事生成的压缩包大小也不正常。推想是不是压缩和删除产生了冲突。验证,注释压缩过程。结果程序就正常了。
仔细检查程序,发现在删除目录下文件时,先执行了压缩原有文件的过程,然后再立马删除文件,结果导致正在压缩时,那个文件可能正好在删除,使得删除和压缩都不正常。
这个问题前后折腾了整整7个小时。希望能为后来的跟我一样的人能节省点时间。

第二个问题。
注意使用图层beginaccess提高效率的时候记得一定要用endaccess结束,不然当数据量大时文件就会一直被程序占用。一开始写程序时没注意把endaccess写成了beginaccess,结果导致了问题出现,没法压缩文件,提示文件正在被某程序占用,由于经验不足,没想到是那个问题。

【MAPX的几点问题解决】改天接着补(待续)

    推荐阅读