其实在github下载的MapWinGIS代码,在support文件夹下的build文件夹下的HowToBuild说明已经写的很清楚了,

* How to build MapWinGIS.ocx*
* Paul Meems
* October 19, 2014
Since MapWinGIS v4.9.1 we use the pre-build binaries
of Tamas (http://www.gisinternals.com/).
This has dramatically simplyfied the build process.
First download the bins and libs from GisInternals.
Since MapWinGIS v4.9.3 we use the GDALv2 library.
At this moment it is not yet formally released so we now use the -development files.
Browse to http://www.gisinternals.com/query.html?content=filelist&file=release-1600-gdal-mapserver.zip (this is a link not a file!)
and download
http://download.gisinternals.com/sdk/downloads/release-1600-gdal-mapserver.zip
http://download.gisinternals.com/sdk/downloads/release-1600-gdal-mapserver-libs.zip
Because Tamas does not yet provide VS2013 binaries we use his VS2010 (1600) binaries.
Unzip these files in \MapWinGIS\trunk\SupportingLibraries\GDAL_SDK\{VS-version}\bin\{platform}\
\MapWinGIS\trunk\SupportingLibraries\GDAL_SDK\{VS-version}\lib\{platform}\
and \MapWinGIS\trunk\SupportingLibraries\GDAL_SDK\{VS-version}\include

Now you can compile the ocx, using VS2010.
Don't forget to register it using \MapWinGIS\trunk\bin\Win32\regMapWinGIS.cmd and you are
ready to go.
Don't forget you also need the 32-Bit version if you want to use the ocx in Visual Studio in your forms.
Visual Studio (even VS2013) doesn't support 64-Bit ActiveX controls.

这里个人知识遇到些问题再次记录下

用vs2015打开MapWinGIS.sln,如果直接编译会报错,因为默认缺少GDAL库,此时可以去http://www.gisinternals.com/下载对应的库,网站的库包含win32和x64的,建议都下载

因为要在vs的窗体中使用ocx,同时需要注册32位的ocx,vs2015目前也不支持64位的com组件,

1、下载MapWinGIS源码,打开MapWinGIS.sln

2、下载GDAL库,分别放置到对应的位置,win32和x64分别都应该放置各自的库,要放置的位置有三个文件夹(bin, include, lib)

3、在win32和x64生成对应的ocx,此时生成成功的时候vs报要用管理员来进行注册,此时重新用管理员打开生成即可,但是如果你想再次生成时,如果没问题略过下面操作

  如果vs又会报错要用管理员生成,目前我也不知道为什么vs每生成一次都需要管理员生成,(希望多多指教),此时可以在工程属性中 ---链接器---注册输出--设置为否,此时每次有更新你得自己反注册和再次注册

4、如果注册不成功,可以用Depends工具打开看看是否有依赖的库找不到,我这边是注册不成功的,于是发现bin目录下的库有些没有拷贝过来,于是我直接将bin目录下的东西全部拷贝到生成目录中,此时再次注册就成功了

5、在winform中使用MapWinGIS,此时在工具箱中添加Com组件,此时添加的MapWinGIS.ocx的版本和你工程所用的目标平台一样,如果是x64,就添加64位的MapWinGIS.ocx到工具箱,此时如果添加失败,确保ocx都已注册,(添加64位的ocx也需要注册32位的)

以上就是MapWinGIS的编译和使用上我遇到的一些问题

编译MapWinGis的更多相关文章

  1. VS2015编译MapWinGIS

    在github上下载MapWinGIS,目前最新版本为4.9.5.0 GitHub上项目地址为:https://github.com/MapWindow/MapWinGIS 通过git客户端下载mas ...

  2. mfc通过MapWinGIS控件读取shp文件(通过#import实现)

    在MFC工程中想使用MapWinGIS组件,有多种方法可以实现, 第一种方法,#Import来实现 1.首先注册MapWinGIS ActiveX组件, 2.新建一个单文档工程:MapGis,为控件添 ...

  3. TODO:macOS编译PHP7.1

    TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...

  4. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  5. CENTOS 6.5 平台离线编译安装 PHP5.6.6

    一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...

  6. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  7. Android注解使用之注解编译android-apt如何切换到annotationProcessor

    前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...

  8. Hawk 6. 编译和扩展开发

    Hawk是开源项目,因此任何人都可以为其贡献代码.作者也非常欢迎使用者能够扩展出更有用的插件. 编译 编译需要Visual Stuido,版本建议使用2015, 2010及以上没有经过测试,但应该可以 ...

  9. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测

    目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/lin ...

随机推荐

  1. uoj #58 【WC2013】糖果公园

    题面:http://uoj.ac/problem/58 正解:树上带修改莫队. 首先Orz vfk大神,树上莫队的套路还是很厉害的..http://vfleaking.blog.163.com/blo ...

  2. 程序员要拥抱变化,聊聊Android即将支持的Java 8

    WeTest 导读 Java 9预计今年也会正式发布,Java 8这个最具变革性且变革性最适于GUI程序的版本,Android终于准备正式支持.从自己开发JavaFx的感受,说一说Java 8应该使用 ...

  3. Charles抓取https请求详解

    大家好,我是TT,互联网测试行业多年,没有牛逼的背景,也没有什么可炫耀的,唯独比他人更努力,在职场打拼.遇到过的坑,走过的弯路,愿意与大家分享,分享自己的经验,少走弯路.首发于个人公众号[测试架构师] ...

  4. 全球移动互联网大会gmic 2017为什么值得参加?

    长城会CEO郝义认为,"科学产业化将会推动科学复兴,"而本次GMIC 北京 2017也将首次引入了高规格科学家闭门峰会,专门设置G-Summit全球科学创新峰会,以"科学 ...

  5. GitHub 常用命令使用介绍(新同学入门)

    经济在不断发展,社会在不断进步,以往的互联网在现在看来都可以称为传统互联网了,因为技术不断的在突破和革新. 本文主要介绍一下版本管理工具,我猜测很多人还是用SVN.CVS或者Resion,但是,今天我 ...

  6. Docker - 虚拟网桥

    容器的网络模式 None --- 容器不能访问外部网络,内部存在回路地址. Container --- 将容器的网络栈合并到一起,可与其他容器共享网络. Host --- 与主机共享网络. Bridg ...

  7. 转:Maven项目编译后classes文件中没有dao的xml文件以及没有resources中的配置文件的问题解决

    问题1:在做spring+mybatis时,自动扫描都配置正确了,却在运行时出现了如下错误.后来查看target/classes/.../dao/文件夹下,发现只有mapper的class文件,而没有 ...

  8. .NET面试题系列[17] - 多线程概念(2)

    线程概念 线程和进程的区别 进程是应用程序的一个实例要使用的资源的一个集合.进程通过虚拟内存地址空间进行隔离,确保各个进程之间不会相互影响.同一个进程中的各个线程之间共享进程拥有的所有资源. 线程是系 ...

  9. JAVA中线程的状态

    java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW:至今尚未启动的线程的状态. RUNNABLE:可运行线程的线程状态. ...

  10. 远程登录Linux服务器修改ssh端口

    公司有部分服务器root密码被禁用,有部分没有禁用,禁用root的服务器需要通过tomcat用户登陆系统,切换至root修改端口,没有禁用的直接修改root密码: #-*- coding:utf-8 ...