爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

MeteoInfo二次开发教程(一)

  [复制链接]

新浪微博达人勋

 楼主| 发表于 2012-8-21 11:31:27 | 显示全部楼层

一楼已经描述了详细的步骤,你是哪一步出的问题?请给出详细信息及截屏图。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-22 09:01:49 | 显示全部楼层
MeteoInfo 发表于 2012-8-21 11:31
一楼已经描述了详细的步骤,你是哪一步出的问题?请给出详细信息及截屏图。

是我没搞清楚,以为引用了类库就会在工具箱的选择项里出现控件,谢老师
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-22 09:28:03 | 显示全部楼层
本帖最后由 alexmitsui 于 2012-8-22 09:40 编辑

紧急求助:按照教程的步骤一步步添加过来,最后一运行,程序就死掉,调试发现报错如下:
未能加载文件或程序集“MeteoInfoC, Version=1.0.6.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。
我下的1.0.6版本MeteoInfoC动态库不行吗?
运行环境是vs2008;.netframework刚刚尝试着升级为4.0了;64为win7系统;
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-8-22 10:08:37 | 显示全部楼层
alexmitsui 发表于 2012-8-22 09:28
紧急求助:按照教程的步骤一步步添加过来,最后一运行,程序就死掉,调试发现报错如下:
未能加载文件或程 ...

MeteoInfo是32位的库,你的vs2008如果是express版的话好像无法在界面中设置程序编译为32位还是64位。不过也有办法解决:

用记事本打开你的程序的.csproj文件,在'Debug|AnyCPU'和'Release|AnyCPU'栏里加上<PlatformTarget>x86</PlatformTarget>,编辑后的结果如下图:
Image00218.png

这样就可以解决64位的问题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-22 10:15:09 | 显示全部楼层
MeteoInfo 发表于 2012-8-22 10:08
MeteoInfo是32位的库,你的vs2008如果是express版的话好像无法在界面中设置程序编译为32位还是64位。不过 ...

太好了!解决了!十分感谢王老师的及时帮助解答!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-22 10:49:57 | 显示全部楼层
本帖最后由 alexmitsui 于 2012-8-22 11:12 编辑

实在不好意思,又有一个问题。。。
我在添加图层的时候,可以正常添加"GLOBALeb3colshade.jpg”文件,但是.shp文件添加时会提示
"未将对象引用设置到对象的实例。"  
此时aLayer的值为MeteoInfoC.Layer.MapLayer {MeteoInfoC.Layer.VectorLayer}
我检查了一下,文件名参数都传过去了啊,要不然那张世界地图也不能正常显示;
为什么添加图层不能选择.shp文件呢?是我哪个方面的配置有问题吗?

尴尬,按照 zhuvieri 所遇到的问题重新添加了一遍也好了。。。我记得之前也这么操作的啊。。。


密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-8-22 11:13:39 | 显示全部楼层
alexmitsui 发表于 2012-8-22 10:49
实在不好意思,又有一个问题。。。
我在添加图层的时候,可以正常添加"GLOBALeb3colshade.jpg” ...

没见到你的代码也无法判断问题所在,你仔细一步步调试一下,看看那个对象是null
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-22 11:30:10 | 显示全部楼层
MeteoInfo 发表于 2012-8-22 11:13
没见到你的代码也无法判断问题所在,你仔细一步步调试一下,看看那个对象是null

代码都是复制了您网页上的,没改动过;
出现"未将对象引用设置到对象的实例。"  报错的代码是这句:
“layersLegend1.ActiveMapFrame.AddLayer(aLayer);”
但 aLayer是有值的。
至于操作步骤,我之前创建的时候是按照教程一步步来的,后来看到 zhuvieri 有遇到类似情况,也删掉重新添加了一遍----mapLayout,mapView,layersLegend三个控件,结果真的好了。。。好纳闷。。。重复了一遍而已。。(我怀疑是不是跟我改动那个.csproj文件有关,改动后这个控件要重新添加才行)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-8-22 11:35:46 | 显示全部楼层
本帖最后由 MeteoInfo 于 2012-8-22 11:36 编辑
alexmitsui 发表于 2012-8-22 11:30
代码都是复制了您网页上的,没改动过;
出现"未将对象引用设置到对象的实例。"  报错的代码是这句:
“ ...

你看看是不是ActiveMapFrame是null

添加了MapFrame之后要将其Active属性设为True,否则layersLend1.ActiveMapFrame就是空对象了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-22 11:43:13 | 显示全部楼层
MeteoInfo 发表于 2012-8-22 11:35
你看看是不是ActiveMapFrame是null

添加了MapFrame之后要将其Active属性设为True,否则layersLend1.Ac ...

额,现在由于错误已排除,没法看到activemapframe是不是null了,
不过,可以确定的一点是,我在layersLegend1的MapFrames属性编辑器里的Active属性第一遍时,已经设置为True了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表