森森特
路人甲
路人甲
  • 注册日期2004-10-23
  • 发帖数10
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3890回复:11

[分享]MO打包终结篇

楼主#
更多 发布于:2004-11-05 08:04
<a href="http://www.863s.com/list.asp?unid=146" target="_blank" ><font size="5">点此查看</font></a>
喜欢0 评分0
<a href="http://www.863s.com"><img src="http://www.863s.com/bbs/images/logo.jpg" border="0"></a><br>
中国3S网站——<a href="http://www.863s.com">http://www.863s.com</a><br>
中国3S论坛——<a href="http://bbs.863s.com">http://bbs.863s.com</a>
hyb1011
路人甲
路人甲
  • 注册日期2004-07-22
  • 发帖数73
  • QQ
  • 铜币114枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-11-05 09:53
<P>好东东啊,正好要用 ^^</P>
<P> </P>
<P >有关MO(MapObjects)打包的文章在网上看了好多,可是拿来一试没有一个可以真正做得尽如人意的,经过一番的折腾,兄弟我终于摸索出一套MO打包切实可行的方法,今天我就给MO打包来一个彻底的了结,希望各位能够喜欢。</P>
<P >这个打包程序是用InstallShield6.22来完成的,以MO2.2为例,今天有关InstallShield6.22的一些应用还请给位自行掌握,在这里我就不再罗嗦了,因为使用起来比较简单。</P>
<P >首先我们来看看MO2.2的一些组件文件,它的组件文件最常见的就有两种,一种是*.ocx一种是*.dll,当然还有其它格式的,只是这两种是开发所必须,如果你想让你的MO2.2程序能够正常运行的话。</P>
<P >其实这两种文件在InstallShield6.22中有可以分为两种,一种是需要注册的,一种是不需要注册的。</P>
<P >下面是需要注册的一些文件<SUP>  ①</SUP>:Mo20.ocx,MO21Legend.ocx,MO21ScaleBar.ocx,weblink.ocx,MemTable21.dll,MemTableServer.dll,Street20.dll,Vpf20.dll,InfoTable20.dll,JetTable20.dll,ADOTable20.dll,aiimage20.dll,CAD20.dll,Coverage20.dll,MoImageCat.dll,MoSde81.dll,MoSde82.dll,MoSde83.dll,MoSde302.dll,MoMrSID.dll,MoSde80.dll,OdbcTbl20.dll,Shape20.dll</P>
<P >下面是那些不需要注册的文件<SUP>  ②</SUP>:dforrt.dll,efileio.dll,elib.dll,ergxlib.dll,ethrlib.dll,ISO8211.dll,libtiff.dll,mobase.dll,Moe.dll,mofeat.dll,mogridio.dll,pe80.dll,Pe81.dll,pe82.dll,pe83.dll,Sde30.dll,Sde80.dll,Sde81.dll,Sde82.dll,Sde83.dll,Sg80.dll,Sg81.dll,Sg82.dll,Sg83.dll,ShapeLT20.dll,AFLT20.dll,AiSetup.dll,CADE.dll,CADPI.dll,pe.dll,Sg.dll,AF20.dll,mtch.dll,EDGE32.dll,sdeora8isrvr81.dll,sdeora8isrvr82.dll,sdeora9isrvr82.dll,sdesqlsrvr81.dll,sdesqlsrvr82.dll,Mo20.lic</P>
<P >以上这些文件,均可在安装了MO2.2的机子的X:\Program Files\Common Files\ESRI(X代表当前操作系统所在的目录)目录下找到。下面就让我们行动起来吧,请看一下步骤:</P>
<P >1、在InstallShield6.22的“File Groups”视图下新建两个文件组“MOOCX”和“MODLL”,在前一个文件组中插入文件  ①,后一个文件组中放入文件②。</P>
<P >2、在“File Groups”视图中选中“MOOCX”文件组,在右边将它的“Sel-Registered”值设为“Yes”,文件组“MODLL”正好相反设为“NO”。</P>
<P >3、需要特别注意的一点那就是,一定要将 “MOOCX”和“MODLL” 文件组的“Destination”值设置为相同的目录(比如TARGETDIR),不然就不能够正确的完成MO2.2的注册。</P>
<P >这样就完成了MO2.2基本控件的注册安装问题简单吧,一句代码都不用写。</P>
<P >接下来我们就来看看MO2.2字体的安装吧,看过好多例子都是通过写注册表的启动项,然后重启,以此来达到字体的安装。就我个人认为这种办法实在是麻烦,而且成功的机率不是很高。</P>
<P >在这里我给大家介绍一种,通过给操作系统发消息的方发法来完成MO2.2字体的安装。这个方法就稍微的麻烦一些了,需通过写脚本来实现,其实也不难,下面就看一下据体操作吧。</P>
<P >1、  现在把InstallShield6.22切换到“Scripts”视图下,在它右面的编辑框中的</P>
<P >“// your DLL function prototypes”的下一行添加下面一行代码:</P>
<P >           prototype number GDI32.AddFontResource(BYREF STRING);</P>
<P >并在“// your global variables”的下一行声明两个常量:</P>
<P >              #define HWND_BROADCAST 0xFFFF</P>
<P >              #define WM_FONTCHANGE 0x001D</P>
<P >2、  然后在“// your script function prototypes”的下一行声明一个函数:</P>
<P >export prototype number InstallFonts(string szFontsName, sting szFontsFiles);</P>
<P >并在脚本最后将这个自定义函数的实现完成,具体代码如下:</P>
<P >function number InstallFonts(szFontName, szFontFiles)</P>
<P >       string szKey;</P>
<P >begin</P>
<P >       szKey = "Software\\Microsoft\\Windows";</P>
<P >if (SYSINFO.WINNT.bWinNT) then</P>
<P >       szKey = szKey + " NT\\CurrentVersion\\Fonts";</P>
<P >elseif (SYSINFO.WIN9X.bWin98) then</P>
<P >       szKey = szKey + "\\CurrentVersion\\Fonts";</P>
<P >endif;</P>
<P >RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);</P>
<P >RegDBSetKeyValueEx (szKey,szFontName,REGDB_STRING,szFontFiles,-1);</P>
<P >AddFontResource(szFontFiles);</P>
<P >//向操作系统发送安装字体的消息</P>
<P >SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);</P>
<P >end;</P>
<P >这样整个安装字体的函数就全部写完了,不是很难吧。</P>
<P >3、  首先,在InstallShield6.22的“File Groups”视图下新建一个“MOFonts”文件组,将它的“Destination”值设置为“<WINDIR>Fonsts”,在安装了MO2.2的机子上的“Fonts”目录下,把MO2.2的所有字体都找到放到“MOFonts”文件组中。接下来就是适时的调用InstallFonts这个函数进行字体的安装了。在OnFirstUIAfter函数中以下面的方法进行调用InstallFonts就可以了,具体操作:</P>
<P >InstallFonts("ESRI Cartography (TrueType)","Esri_1.ttf");</P>
<P >InstallFonts("ESRI Environmental ; Icons (TrueType)","Esri_2.ttf");</P>
<P >InstallFonts("ESRI Geometric Symbols (TrueType)","Esri_3.ttf");</P>
<P >......其它的字体也可以以此来完成安装。</P>
<P>       最后,还要说的就是,有的朋友要用到MO2.2能够支持的更多的图形格式的话,只是打包上面所列出的那些文件是远远不够的。为了能够让你的程序支持更多的图形格式,建议你把X:\Program Files\Common Files\ESRI\MO_image(X代表当前操作系统所在的目录)整个目录都放在“MODLL”这个组件下,最好不要改变它的目录结构,当然为了节省空间你可以删掉里面的pdf文件。这样以来你就可以在你的程序中处理所有MO2.2所能够支持的图形格式了。</P>
<P> </P>
<P>       说明:文中出现的  ①、  ②分别代表了需要注册和不需要注册的两种文件。本文的参考资料来自InstallSheild网站和MO2.2的相关资料。</P>
<P><a href="http://support.installshield.com/kb/view.asp?pcode=ALL;articleid=Q100057" target="_blank" >http://support.installshield.com/kb/view.asp?pcode=ALL;articleid=Q100057</A></P>
<P> </P>
QQ:22621544 欢迎交流~^^~
举报 回复(0) 喜欢(0)     评分
cher0731
路人甲
路人甲
  • 注册日期2004-10-28
  • 发帖数40
  • QQ
  • 铜币189枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-11-05 10:30
好东东,偶喜欢,谢了<img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
seava
路人甲
路人甲
  • 注册日期2004-03-11
  • 发帖数63
  • QQ
  • 铜币182枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-11-05 19:20
应该在文章后面附上installshield的下载地址
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
4楼#
发布于:2004-11-05 21:48
支持以下
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
森森特
路人甲
路人甲
  • 注册日期2004-10-23
  • 发帖数10
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-11-08 11:21
谢谢大家的支持!
<a href="http://www.863s.com"><img src="http://www.863s.com/bbs/images/logo.jpg" border="0"></a><br>
中国3S网站——<a href="http://www.863s.com">http://www.863s.com</a><br>
中国3S论坛——<a href="http://bbs.863s.com">http://bbs.863s.com</a>
举报 回复(0) 喜欢(0)     评分
songrose
路人甲
路人甲
  • 注册日期2004-06-07
  • 发帖数18
  • QQ
  • 铜币191枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-11-17 10:25
<P><img src="images/post/smile/dvbbs/em01.gif" /></P><P>麻烦给一下installshield6.22的下载地址!</P><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
7楼#
发布于:2004-11-17 11:38
<P>可以直接到<a href="http://www.installshield.com" target="_blank" >www.installshield.com</A>去下载试用的</P><P>现在已经有install shield 10.5了,偶用了很好用!</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
wjckaxi
路人甲
路人甲
  • 注册日期2004-04-13
  • 发帖数144
  • QQ
  • 铜币149枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2004-11-18 13:32
支持哦!!!这样的好贴一定要顶上去!!!
菜虫 欢迎光临Blog http://blog.sina.com.cn/wjckaxi
举报 回复(0) 喜欢(0)     评分
6005831982
路人甲
路人甲
  • 注册日期2004-09-18
  • 发帖数80
  • QQ
  • 铜币258枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2004-11-21 09:35
ding !<img src="http://www.gisempire.com/bbs/Skins/default/topicface/face9.gif">
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部