如需转载,请注明作者
第一部分 文件格式
问题1.mxd文件里面保存了什么?
答案:mxd的文件结构是这样的,树状结构,每个叶节点都保存了IStream对象,可以反序列化出来。
1.mxd
Maps(5195)
View(22)
Maplex(2)
Version(18)
BarState(3936)
Contents(4)
Metadata(66)
SMWindow(0)
Templates(511)
DataGraphs(4)
PageLayout(3016)
UIControls(4)
DataWindows(4)
Accelerators(6)
StyleGallery(348)
Document Info(30)
Georeferencing(0)
Survey Analyst(0)
DrawingDefaults(1848)
TableProperties(342)
[The VBA Project]
[_VBA_Project]
[VBA]
dir(4438)
ThisDocument(998)
_VBA_PROJECT(15078)
PROJECT(367)
PROJECTwm(41)
VBA Project Data(132)
Host Project Items(310)
VBA Project Signature(10)
[Host Project Item Names]
[ThisDocument]
[Control List Data]
Control List Data(40)
Control_Data_CurVer(10)
Project Item Data(10)
[ReqControl List Data]
ReqControl List Data(10)
Project_Data_CurVer(10)
Host Project Item List Data(20)
TabletPC Support(0)
Tracking Analyst(377)
ESRI Object Editor(148)
Tracking Environment(0)
Data Interoperability(0)
Overposter Validation(0)
Utility Network Analyst(0)
ESRI Publisher Extension(460)
Locator Database Extension(6)
ESRI Route Hatching Extension(0)
SurveyAnalyst_ArcMapExtension(727)
其的文件也是类似的,比如*.pmf,*.mxt。
问题2.对象的序列化和反序列化如何跟AO挂钩?
答案:我们可以自己去序列化AO的对象,然后再去反序列化回来。但目前还没有找到ESRI内部如何去序列化对象的,也就是说我们去反序列化ESRI的东东有点困难。
问题3.AO中使用的符号究竟如何保存的?
答案:*.style文件属于Jet引擎文件,需要通过OLE方式打开,这在跨平台上有所欠缺,于是ESRI推出了*.ServerStyle文件,这是一种目录结构文件。文件结构也可以很轻松的读取出来。
另外,我们从符号文件*.style到*.ServerStyle变迁,从PersonalGDB到File GDB,我们可以看出来ESRI正在逐步摆脱Jet引擎。
问题4:汉化如何DIY?
答案:注意到ESRI的安装路径Bin下,存在大量res*.dll这就是资源文件了,如果要汉化,那就从这里下手。北京ESRI推出的汉化包也就做了这步工作。