摘要:
log4net解决的问题是在.Net下提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access,Oracle9i,Oracle8i,DB2,SQLite)中。lo... 阅读全文
摘要:
1、在GMap地图上,如果要让添加的图标(Marker)有个高亮(highlight)的效果,可以在MouseOver到Marker的时候设置Marker外观效果。 如果要让图标有个报警闪烁的效果,可以设置一个定时器,在定时器中改变Marker的外观,或者是用GDI来画圆闪动,带报警效果的Marke 阅读全文
摘要:
上一篇介绍了如何在GMap地图上添加多边形,这篇介绍下如何使用在线的地图服务进行“地址解析”和“路径查找”。 先看地址解析,GMap中的地址解析主要用到GeocodingProvider中的如下方法: //根据关键字得到一组坐标 GeoCoderStatusCode GetPoints(string 阅读全文
摘要:
上一篇介绍了在GMap上添加自定义标签(GMapMarker),这篇介绍在GMap上添加多边形(GMapPolyogn),并且介绍如何在地图上画任意的多边形。 如果已经知道了多边形的各个点的位置,就可以通过如下方式在地图上添加多边形: GMapOverlay polyOverlay = new GM 阅读全文
摘要:
上一篇文章介绍了如何在WinForm和WPF中使用GMap控件,这篇介绍下GMap中Marker的使用。 自定义Marker,可以理解为在地图上自定义图标(Custom Marker),先看看GMap的地图和图标的显示方式: Map控件上可以添加Overlay(图层),可以添加多个图层,先添加的图层 阅读全文
摘要:
GMap.NET是什么? 来看看它的官方说明:GMap.NET is great and Powerful, Free, cross platform, open source .NET control. Enable use routing, geocoding, directions and m 阅读全文
摘要:
VLC的C++封装 因为工作需要,研究了一段时间的播放器开发,如果从头开始做,可以学习下FFmpeg(http://www.ffmpeg.org/),很多播放器都是基于FFmpeg开发的,但是这样工作量和难度都比较大,如果想很快能拿出一个播放器来用的,可以研究下开源的播放器,参考下射手播放器作者的文 阅读全文
摘要:
在以前VC++6.0中默认的字符集是多字节字符集(MBCS:Multi-Byte Character Set),而VS2005及以后默认的字符集是Unicode,这样导致以前在VC6.0中非常简单实用的各类字符操作和函数在VS2010环境下运行时会报各种各样的错误。 字符集可以通过工程属性修改:“工 阅读全文
摘要:
1、导出C函数以用于C或C++的项目如果使用C语言编写的DLL,希望从中导出函数给C或C++的模块访问,则应使用 __cplusplus 预处理器宏确定正在编译的语言。如果是从C++语言模块使用,则用C链接声明这些函数。如果使用此技术并为DLL提供头文件,则这些函数可以原封不动地由C和C++模块使用。以下代码演示可由 C 和 C++ 客户端应用程序使用的头文件:// MyCFuncs.h#ifdef __cplusplusextern "C" { // only need to export C interface if // used by C++ source ... 阅读全文
摘要:
1、在Windows下用CMD netstat命令可以获得当前进程监听端口号的信息,如netstat -ano可以看到IP、port、状态和监听的PID。 那么可以执行CMD这个进程得到监听的端口号信息,C#代码如下: 2、如果不执行CMD进程,如何获得?可以参考这篇文章http://www.cnb 阅读全文
摘要:
功能需求:1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。这里的Image是System.Drawing.Image。 //Get an image from file Image image = Image.FromFile("D:\\test.jpg"); Bitmap bitmap = new Bitmap("D:\\test.jpg");以下三个函数分别实现了.. 阅读全文
摘要:
IP地址与整数之间的转换1、IP地址转换为整数原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数。举例:一个ip地址为10.0.3.193每段数字 相对应的二进制数10 000010100 000000003 00000011193 11000001组合起来即为:00001010 00000000 00000011 11000001,转换为10进制就是:167773121,即该IP地址转换后的数字就是它了。C#代码: public static long IpToInt(string ip) ... 阅读全文
摘要:
1、整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet;行:Row;单元格Cell。2、NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 3、POI读取Excel有两种格式一个是HSSF,另一个是XSSF。 HSSF和XSSF的区别如下: ... 阅读全文
摘要:
ArcGIS REST API提供了简单、开放的接口来访问和使用ArcGIS Server发布的服务。使用ArcGIS REST API通过URL可以获取和操作每一个服务中的所有资源和操作。1、使用步骤 1)构建请求网址 A、确定端点:每个GIS服务都有一个端点。例如,ArcGIS Server上Demographics文件夹下名为ESRI_Census_USA的一个地图服务sampleserver1.arcgisonline.com的端点为:http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESR. 阅读全文
摘要:
ElementLayer是ArcGIS API for Silverlight/WPF中的一种图层类型,主要用来承载Silverlight/WPF中的UIElement对象(UIElement),使用ElementLayer有一个主要的优点就是:ElementLayer中的元素会随着地图的变化而变化(缩放/平移)(PS:在元素控件没有固定size的情况下),而不用自己去处理这些UIElement的地理坐标。所以可以选择使用ElementLayer来放置我们想要的Windows控件元素。比如,当点击GraphicsLayer上的某一点时,弹出一个信息展示界面等功能时就可以用到ElementLay 阅读全文
摘要:
ArcGIS可以设置动态地图服务(ArcGISDynamicMapServiceLayer)显示哪些图层,也可以设置每个图层根据某个属性字段的某些条件来进行过滤显示。1、设置显示的图层主要是通过ArcGISDynamicMapServiceLayer的VisibleLayers属性来设置或得到当前显示的图层,C#代码如下:代码中Map1和TextBlock_VisibleLayers是已经定义好的地图和TextBlock控件。//ArcGISDynamicMapServiceLayer初始化函数private void ArcGISDynamicMapServiceLayer_Initiali 阅读全文
摘要:
ArcGIS runtime SDK for WPF/Silverlight中的三种常用的查询:QueryTask、FindTask、IdentifyTask都是继承自ESRI.ArcGIS.Client.Tasks,关系如下图所示:1、QueryTask:是一个进行空间和属性查询的功能类,它可以在某个地图服务的某个子图层内进行查询,顺便提一下的是,QueryTask进行查询的地图服务并不必须加载到Map中进行显示。QueryTask的执行需要两个先决条件:一个是需要查询的图层URL、一个是进行查询的过滤条件。下面是QueryTask的基本过程: //新建一个QueryT... 阅读全文
摘要:
什么是图层图层是用来在 ArcGIS 产品套件中显示地理数据集的机制。每个图层代表一种数据集(可以是地图服务、图形或是矢量数据),并指定该数据集是如何描绘使用一组属性的。包含一个地图控件的每个应用程序是通过添加一系列图层组装的。图层以特定的顺序显示在地图上,列在最底部的图层在地图的最上面显示,也就是先添加的图层在下面显示(原理类似于“栈”)。比如,在XAML代码中,最靠上的图层在显示时会出现在Map控件的最底端,如图:图层介绍第一个图层的空间坐标系SpatialReference决定了地图的空间坐标系,图层只能在UI线程上进行实例化。以下是所有的图层类:所有的图层都是从Layer类型继承而来的 阅读全文
摘要:
节点勾选设置TreeView树中节点勾选要求:1、不选中一个节点,则其所有的子节点都不被选中。2、选中一个节点,则其所有的子节点都被选中。3、当一个节点的所有子节点都没有被选中时,该节点也没有被选中。4、当一个节点的所有子节点中有一个被选中时,则该节点也被选中。代码中对事件参数e.Action的判断... 阅读全文
摘要:
一、使用线程的理由1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。2、可以使用线程来简化编码。3、可以使用线程来实现并发执行。二、基本知识1、进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。2、前台线程和后台线程:通过Thread类新建线程默认为前台线程。当所有前台线程关闭时,所有的后台线程也会被直接终止,不会抛出异常。3、挂起(Suspend)和唤醒(Resume):由于线程的执行顺序和程序的执行情况不可预知,所以使用挂起和唤醒容易发生死锁的情况,在实际应用中应该尽量少用。4、阻塞线程:Join,阻塞调用线程 阅读全文