是这样的,我在内存中建好了一棵树,要在别的程序中使用这棵树,我就把这段内存中的内容存到文件中,然后用内存映射将这个文件映射到另一个程序的进程地址空间(这样应该是可行的吧?)。 但是我把内存中的树存到文件中后,发现文件很大,用HEX EDIT 打开看的时候里面有很多 00 (因为树中有很多指针)。 我就想是否可以把这个文件压缩一下?有两个问题:(1)哪里有压缩解压的源吗?(2)压缩之后,我该怎么在另一个程序中使用这棵树?
解决方案 »
- Dll调用失败!求帮助!
- 请教一个VC开发收发手机短信的前提,步骤和注意事项
- 系统服务编程
- ADO:可否通过数字索引0、1、2来取得fields中的field对象?
- VC6.0能否使用MSDN2003?
- c/s开发的问题?
- AfxFindResourceHandle和AfxGetInstanceHandle两个WIN32函数有什么区别?
- UNIX/C++ Makefile出错,请教,在线 ..
- dll注入时,引起 afxwin1.inl 22 错误
- 关于setsystemcursor 的参数的问题,急.................
- 大家推荐些VC实例相关的书吧
- 调试多线程程序中遇到的问题,在线等!
//当然可以 但是我把内存中的树存到文件中后,发现文件很大,用HEX EDIT 打开看的时候里面有很多 00 (因为树中有很多指针)。 我就想是否可以把这个文件压缩一下?有两个问题:(1)哪里有压缩解压的源吗?(2)压缩之后,我该怎么在另一个程序中使用这棵树?
//(1)很多,比如zlib等。(2)解压缩之后使用。
不过既然是两个进程同时运行,进程A要压缩,然后写入文件,然后进程B要读文件,然后解压缩,感觉反而更浪费空间。不如在进程A直接把树序列化到内存映象文件,然后在进程B序列化出来好了。没必要压缩解压缩
但我的意思是这样的,我这棵树建好之后只是用来检索,而不用去修改它,因此我只是用进程A来建树,建好之后,再在进程B中用这个树就行了,所以并不需要两个进程同时运行。现在是我把树存到文件中之后文件有点大(影响发布),因此我想到是否可以在存文件的时候先压缩,然后在进程B中用相应的解压缩算法来解压这个内存映象文件。
因为我对压缩解压不太懂,是否解压之后非得形成一个新的文件?这时候我在进程B中怎么对树进行检索?
谢谢!