本文共 1838 字,大约阅读时间需要 6 分钟。
花了一个晚上的时间终于搞定mapX5.02.26的调用了,记录下。
先看看效果图1吧。,当然很原始,不过这只是写了10行不到的代码而已。下面开始
平台:win8.1 64bit + VS2010 32bit英文版
模板:Ribbon的SDI
MAPX:5.02.26破解版
地图:中国地图gst格式(最后会放出mapx破解版及地图gst文件打包文件本站下载地址)
- 下载mapx5.02.26+地图gst打包压缩包,解压缩到任意位置
- 可以看到有个iso镜像文件,装载到虚拟光驱,如图2,这里特别要注意,不要运行根目录下的setup.exe,而要打开bin目录下的demo32.exe,如图3.
- 等待片刻之后出现安装程序,图4,点击第一个安装下去,。
- 结束后,会在C:\Program Files (x86)\MapInfo\文件夹下看到mapx5文件。
- vs里新建一个基于ribbon的sdi工程mapXdemo。
- 将破解包里的mapx50.lic文件复制到这个mapx5.0下,并用记事本打开这个lic文件,复制第一行key值,下面会用到这个值。
- mapx\samples下有c++文件夹,从里面拷贝mapx.h ,mapx.cpp2个文件到mapXdemo目录下,添加进工程。
- CmapXdemoView.h里添加
[cpp]
- #include "mapx.h"
- CmapXdemoView.cpp的OnCreate里添加
[cpp]
- RECT windRect;
-
- GetClientRect(&windRect); //取得视图区域
- CString strLic = _T("uQnZi2sFw22L0-MRa8pYX-1E2P8065-5N5M3459-3C934220-04969-6562");//复制的key
- BSTR bstrLic = strLic.AllocSysString();
- m_MapCtrl.Create(NULL, WS_VISIBLE, windRect, this,1122,
- NULL, FALSE, bstrLic);
- ::SysFreeString(bstrLic);
- m_MapCtrl.SetGeoSet(_T("E:\\GST地图\\中国城市.gst"));//gst地图位置
- CMapXLayers allLayers = m_MapCtrl.GetLayers();
- allLayers.Add((LPCTSTR)_T("E:\\GST地图\\国界.TAB"));
- //allLayers.Add(_T("国界.TAB"));
- CMapXLayer cusLr = allLayers.AddUserDrawLayer(_T("userLr"),1);
- allLayers.SetAnimationLayer(cusLr.DetachDispatch());
- CmapXdemoView.cpp的OnSize里添加
if(m_MapCtrl.GetSafeHwnd() != NULL) { m_MapCtrl.MoveWindow(0,0,cx, cy); }
- 编译连接运行吧,应该ok了。
--------------------------------------------------------------------------------------------------------------------------------
编译过程中可能会出现弹出对话框提示failed to create empty document之类的错误,原因有2种可能
- key没有写对,查下mapx文件夹有没lic文件,里面的key和create里的key相符不相符。
- mapx文件夹下缺少一个geodict.dct文件,解决方法是在mapx根目录下新建maps文件夹,里面新建一个空文件,取名geodict.dct,内容可以不填
-----------------------------------------------------------------------------------------------------------------------------------
破解文件盒gst测试文件压缩包地址在这里,分3个压缩卷:
,,
如果我的文字解决了你的问题,请打个赏的,让我更有动力:)