World Wind .NET源码编译问题处理
World Wind .NET源码编译问题处理
下载了World_Wind_1.4.0_Source源码(http://worldwindcentral.com/wiki/NASA_World_Wind_Download),打开后发现问题真不少,只能一个个排查了:
一、错误 1 未能找到类型或命名空间名称“Org”(是否缺少 using 指令或程序集引用?) \WorldWind\World_Wind_1.4.0_Source\WorldWind\GpsPlugin\GPSTrackerPlugin.UDPTCP.cs 28 7 WorldWind
解决办法:假定所有的源文件的根目录为World_Wind_1.4.0_Source,在该目录下,找到World_Wind_1.4.0_Source\bin\Debug,将该目录下的Config、Data和Plugins目录,以及AviFile.dll、FlickrNet.dll、Org.Mentalis.Security.dll、ZedGraph.dll等拷贝粘贴到World_Wind_1.4.0_Source\WorldWind\bin\x86\Release目录下即可。
从World Wind的官网下载了程序包,是发现了一堆的问题。
二、字符文本中的字符太多

看信息详情

开始以“使用简体中文(GB2312)编码加载的文件”,说相应的解决办法如此链接:http://mituhao.diandian.com/post/2012-01-05/40027609137 说要勾选 工具|选项和设置|文本编辑器|自动检测不带签名的UTF8编码.但是自己检查看了下,已经是勾选的,很显然不是这个问题。实际上这个问题主要是ConfigurationLoader.cs和Angle.cs有错误。看后去官网https://nasa-exp.svn.sourceforge.net/svnroot/nasa-exp/trunk/WorldWind/看了下网页版的代码。修改相应的部分就可以了。
具体修改入如下:
Angle.cs


1 /// <summary>
2 /// Converts degrees to degrees/minutes/seconds
3 /// </summary>
4 /// <returns>String on format dd癿m'ss.sss"</returns>
5 public string ToStringDms()
6 {
7 double decimalDegrees = this.Degrees;
8 double d = Math.Abs(decimalDegrees);
9 double m = (60*(d-Math.Floor(d)));
10 double s = (60*(m-Math.Floor(m)));
11
12 return String.Format("{0}皗1}'{2:f3}\"",
13 (int)d*Math.Sign(decimalDegrees),
14 (int)m,
15 s);
16 }
17
18 public override string ToString()
19 {
20 return Degrees.ToString(CultureInfo.InvariantCulture)+"?;
21 }


修改为:


1 /// <summary>
2 /// Converts degrees to degrees/minutes/seconds
3 /// </summary>
4 /// <returns>String on format dd°m'ss.sss"</returns>
5 public string ToStringDms()
6 {
7 double decimalDegrees = this.Degrees;
8 double d = Math.Abs(decimalDegrees);
9 double m = (60*(d-Math.Floor(d)));
10 double s = (60*(m-Math.Floor(m)));
11
12 return String.Format("\"{0}°{1}'{2:f3}\"",
13 (int)d*Math.Sign(decimalDegrees),
14 (int)m,
15 s);
16 }
17
18 public override string ToString()
19 {
20 return Degrees.ToString(CultureInfo.InvariantCulture)+"?";
21 }


ConfigurationLoader.cs
1 string viewBBox = string.Format(CultureInfo.InvariantCulture,
2 "{0},{1},{2},{3}",
3 bbox[0].ToString().TrimEnd('?), bbox[1].ToString().TrimEnd('?), bbox[2].ToString().TrimEnd('?), bbox[3].ToString().TrimEnd('?));
修改为:
1 string viewBBox = string.Format(CultureInfo.InvariantCulture,
2 "{0},{1},{2},{3}",
3 bbox[0].ToString().TrimEnd('?'),bbox[1].ToString().TrimEnd('?'), bbox[2].ToString().TrimEnd('?'),bbox[3].ToString().TrimEnd('?'));
问题三:无法注册程序集“..\Debug\HtmlEditor.dll”- 拒绝访问。请确保您正在以管理员身份运行应用程序。对注册表项“HKEY_CLASSES_ROOT\CLSID\{25336920-03F9-11CF-8FD0-00AA00686F13}”的访问被拒绝
解决办法右键HtmlEditor属性 生成|为COM互操作注册 前面的勾去掉。
问题四、缺少程序集引用问题
错误1: 

原因:无法找到引用的DLL文件
解决方法: 1.更改发布模式为调试模式(最简单,不用重新添加引用) 2.将Debug文件下所有文件复制到World_Wind_1.4.0_Source\WorldWind\bin\x86\Release目录下 参看: http://bbs.godeyes.cn/showtopic-324487.aspx 假定所有的源文件的根目录为World_Wind_1.4.0_Source,在该目录下,找到World_Wind_1.4.0_Source\bin\Debug,将该目录下的Config、Data和Plugins目录,以及AviFile.dll、FlickrNet.dll、Org.Mentalis.Security.dll、ZedGraph.dll等拷贝粘贴到World_Wind_1.4.0_Source\WorldWind\bin\x86\Release目录下即可。
问题五、非托管代码LoaderLock问题

解决方法: ctrl+D+E或alt+ctl+e或使用菜单(调试-》异常)——》异常窗口 ——》ManagerDebuggingAssistants ——》去 掉LoaderLock选项
问题六、64位环境编译错误问题
解决方法:


七、DirectX问题
编译运行之前首先要安装DirectX,因为Worl Wind中的子项目有对其的引用,如下:
PluginSDK项目需三个引用:Microsoft.DirectX,Microsoft.DirectX.Direct3D,Microsoft.DirectX.Direct3DX; WorldWind项目需四个引用:Microsoft.DirectX,Microsoft.DirectX.Direct3D,Microsoft.DirectX.Direct3DX,Microsoft.DirectX.DirectInput。 DirectX是微软一系列技术地集成,用来提供Windows平台多媒体运行地API,支持应用程序、多媒体软件和3D游戏非常声效。
我下载地是DirectX11。
OK,问题解决了,一起来享受下美丽的地球吧!

World Wind .NET源码编译问题处理的更多相关文章
- Android 5.0源码编译问题
如果是自己通过repo和git直接从google官网上download的源码,请忽略这个问题,但是由于google在国内被限制登录,通过这一种方法不是每个人都能download下来源码,通常的做法就是 ...
- Android stdio Apktool源码编译
Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成 ...
- SSH/SSL 源码编译安装简易操作说明
环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- Linux 安装node.js ---- 源码编译的方式
一 : 普通用户: 安装前准备环境: 1.检查Linux 版本 命令: cat /etc/redhat-release 2.检查 gcc.gcc-c++ 是否安装过 命令: rpm -q gcc rp ...
- 烂泥:mysql5.5数据库cmake源码编译安装
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开 ...
- Centos7.X 源码编译安装subversion svn1.8.x
说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...
- centos6.5环境源码编译安装mysql5.6.34
centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...
随机推荐
- JVM中对象的创建过程
JVM中对象的创建过程如以下流程图中所示: 对其主要步骤进行详细阐述: 为新生对象分配内存: 内存的分配方式: 指针碰撞:假设Java堆中内存是绝对规整的,所有用过的内存放在一边,空闲的内存在另一边, ...
- java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)可能出现的原因
可能是因为你的服务器http连接过多,导致端口被占用,无法释放
- nginx tomcat 动静分离
所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片.html等静态的文件,tomcat(或weblogic)处理jsp.do等动态文件</span>,从而达到动静页面 ...
- .Net深复制、浅复制
在.Net,大家都知道引用类型的深复制.浅复制吧. ,一般int等值类型是值类型(复制时是直接传值),一般的类(List<T>,Class)是引用类型(复制时传地址),默认是浅复制.若ob ...
- ZTE交换路由设备配置的备份与恢复
一.TFTP服务器搭建 使用用户计算机搭建TFTP服务器,交换路由设备作为TFTP客户端. 运行TFTPServer.exe,该程序所在的目录为TFTP的根目录. 请保证您的TFTP可以Ping通所要 ...
- MySql连接Visual studio Code First插件
到mySql官网Downloads==> MySQL on Windows==>MySQL for Visual Studio 下载插件安装即可
- Servlet 3.0
Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发 ...
- libgdx 裁剪多边形(clip polygon、masking polygon)
直接放例子代码,代码中以任意四边形为例,如果需要做任意多边形,注意libgdx不能直接用ShapeRender填充多边形,需要先切割成三角形. public static void drawClip( ...
- linux下文件搜索命令学习笔记
1. locate:按照文件名搜索文件 locate filename 与find在整个操作系统中遍历搜索不同,locate命令在/var/lib/mlocate这个后台数据库中按照文件名搜索,所以优 ...
- css控制段落
<p></p>标签:一段话或者段落适宜于用p标签: 段落缩进:text-indent:50px: 文字方向:text-align:center居中.left往左显示.right ...