摘要: 在C和C++语言开发中,指针、内存一直是学习的重点。因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患。 因此,无论如何,我们都要对内存有一个清晰的理解。 一、对内的分配 32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF)。即理论上支持如下的大数组:char szBuffer[2*1024*1024*1024]; 当然,由于在实际运行时,程序还有代码段、临时变量段、动态内存申请等,实际上是不可能用到... 阅读全文
posted @ 2013-03-24 21:49 GIS_Darren 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 为什么我们要学习函数式编程?为获得更好的软件设计技术! 一天,我们设计了一个流程,来校对款项的收支平衡。下面这张图就是我们在几年前设计出的结果: 那以后我们开始学习函数式编程。函数式编程让我们以数据流的方式思考过程处理:数据进来,做变换,过滤,计算,最终的结果就是输出。不仅软件是这样工作的,每段代码,每个函数,都模型化成数据输入,数据输出。中间没有状态的变换。 按这种方式思考问题使我们得到了这样的流程图: 把程序当成数据管道的思考方式使我们关注结果应该是什么,而不是每一步应该如何做。这种更高层次的思考问题的方式使得我们在系统设计阶段避免陷入细节实现的泥潭中。 不管用什么语言写成解决方... 阅读全文
posted @ 2013-03-24 21:48 GIS_Darren 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文主要与您探讨异常以及异常处理相关方面的一些知识,主要包括检查异常与非检查异常的理解,多视角观察理解异常,进而探讨关于构建稳健且可扩展的异常框架方面的一些设计原则。 概述 一般情况下,企业级应用都对应着复杂的业务逻辑,为了保证系统的健壮,必然需要面对各种系统业务异常和运行时异常。 不好的异常处理方式容易造成应用程序逻辑混乱,脆弱而难于管理。应用程序中充斥着零散的异常处理代码,使程序代码晦涩难懂、可读性差,并且难于维护。 一个好的异常处理框架能为应用程序的异常处理提供统一的处理视图,把异常处理从程序正常运行逻辑分离出来,以至于提供更加结构化以及可读性的程序架构。另外,一个好的异常... 阅读全文
posted @ 2013-03-24 21:47 GIS_Darren 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 你可以认为我是一个极端的人,就像有许多人专注于自己的领域而不屑于其它“肤浅”的工作范畴一样。比如我见过不少认为做portal没有技术含量的判定,做工程都是充满苦逼行为的言论,最近则还有那些“大数据”崇拜者的疯狂吐槽……我的极端则有些不同,我的极端在于我认为绝大多数优秀的程序员,都要尝试多方面的事情。并不只有底层开发或者机器学习充满睿智的挑战,我做了几年网站,很难说这就是我最初的兴趣,虽然也在接触和学习其他的领域,但是依然觉得,做网站仍旧充满挑战,互联网真是一个奇葩充斥的地方。 前端开发,则是这“多方面的事情”中的一个重要方面。潜心尝试过的人兴许会有这样的体会,这是一片崭新的世界,无论是理... 阅读全文
posted @ 2013-03-24 21:46 GIS_Darren 阅读(183) 评论(0) 推荐(0) 编辑
摘要: ArcGis Server10 for java初试(语言组织的不是太好,见谅!)做电力行业的配网自动化项目,经理让加上gis这块并在这之上扩展诸如:整个县的电网结构、停电模拟、电网设备状态显示、带点区域显示等。最终经理让用Arcgis server10做基于WEB的, 用java平台。在网上泡了一段时间后,终于把arcgis desktop、arcgis server、arcgis engine都下载下来了,并安装在自己机器上了。其中我只用到了arcgis server部分,如下图: 文件安装目录如下:1、 安装JDK1.6、MyEclipse8.6及Apache Tom... 阅读全文
posted @ 2013-03-24 21:42 GIS_Darren 阅读(1443) 评论(0) 推荐(0) 编辑
摘要: API函数大全1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 WNetEnumRes. 阅读全文
posted @ 2013-03-24 21:40 GIS_Darren 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 装箱(boxing)机制是一个值得单独拿出来讨论的话题,因为忽略它,我们会在不知不觉间犯下很大的错误。 先说说装箱的过程:会先在堆中分配好内存,该内存大小为值类型所有字段和添加的类型对象指针以及同步块索引所需的字节,然后将值类型字段复制到这块新分配的内存中,接着返回对象的地址值,即该对象的引用。 拆箱并不是装箱的逆操作:拆箱只是获取一个引用,该引用指向值类型的字段,它并不要求复制字段,复制字段实际上拆箱之后的动作,但这个动作是一定会发生。 装箱设计到字段的复制,所以需要特别小心。但C#中有一个隐式装箱机制,使得我们很多时候防不胜防。所以,最好的做法就是显式的进行转换,而不是交给编译器。 如果. 阅读全文
posted @ 2013-03-16 18:46 GIS_Darren 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 今天在单位做图层合并的工作,刚开始找不到相应的接口,现在解决了,放出来与大家共享本程序实现了对具有同类型数据结构的shapefile的图层合并,并在MapControl中显示. ILayer pLayer; IFeatureLayer pFeatureLayer; IFeatureClass pFeatureClass; IWorkspaceName pNewWSName; IBasicGeoprocessor pBasicGeop; IFeatureClassName pFeatureClassName; IDatasetName pDatasetName; IFeatureClass pO 阅读全文
posted @ 2013-03-16 18:43 GIS_Darren 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 结合help中给的例子,又使用DisPlayFeedBack,实现在鹰眼中拖动。拖动过程中小边框的显示问题解决的不是很好,还望大家多多指教。实现如下:两个MapControl控件:axMapControl1和axMapControl2,axMapControl2存放鹰眼地图。主要变量有:private IEnvelope m_Envelope; //The envelope drawn on the small MapControl---axMapControl2.private System.Object m_FillSymbol; //The symbol used to draw the 阅读全文
posted @ 2013-03-16 18:42 GIS_Darren 阅读(286) 评论(0) 推荐(0) 编辑
摘要: axMapControl1是主控件,axMapControl2是鹰眼控件要看清楚事件响应1.鹰眼地图资源载入privatevoid axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e) { //当主地图显示控件的地图更换时,鹰眼中的地图也跟随更换 axMapControl2.LoadMxFile(axMapControl1.DocumentFilename); axMapControl2.Extent = axMapControl2.FullExtent; }2.绘制鹰眼矩形框pr 阅读全文
posted @ 2013-03-16 18:41 GIS_Darren 阅读(313) 评论(0) 推荐(0) 编辑