EVC开发MapXMobile 环境搭建

来源:互联网 发布:武汉诚迈科技知乎 编辑:程序博客网 时间:2024/05/18 05:19
 
1. 安装 EVTool3.0

2. 安装 Evc4+sp4

3. 安装虚拟网卡(针对单机不能上网的情况,如已有网络可不设置)
   1. 单击开始,指向设置,单击控制面板,然后双击添加/删除硬件。
   2. 单击“添加设备/排除设备故障”,然后单击下一步。
   3. 单击“添加新设备”,然后单击下一步。
   4. 单击“否,我想从列表选择硬件”,然后单击下一步。
   5. 单击“网络适配器”,然后单击下一步。
   6. 在制造商框中,单击 Microsoft。
   7. 在网络适配器框中,单击 Microsoft 环回适配器,然后单击下一步。
   8. 单击完成。

4. PocketPC 2003 SDK

5. 安装MapXMobile5.0

6. 安装EVC的调试类
    下载;  ;830482]http://support.microsoft.com/default.aspx?scid=kb;[LN];830482

    C:/Program Files/Windows CE Tools/wce420/POCKET PC 2003/Mfc/Lib/X86

7. 调整内存(可选)
   注册表:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows CE Tools/Platform Manager/{F384D888-F9AA-11D1-BB9E-00A0C9C9CCEE}/{8786CEC0-7256-413A-BAA3-39B5F435A826}/{F384D894-F9AA-11D1-BB9E-00A0C9C9CCEE}/{3F1E2DE3-78A1-4B0E-BDEB-F7088940C1A2}
   memory 调整250
   最大 256

8. Rebuild

9. C:/Program Files/MapInfo/MapX Mobile-5.05/target/x86/TargetInstaller

   setup_x86.bat

10. Tool---Remote File Viewer
  
   将地图文件导入 Maps文件夹

11. execute

窗口创建时,把地图的相对路径
strmapath = L"[url=file:////My Documents//Maps//xa.gst]//My Documents//Maps//xa.gst[/url]";

int CTest1View::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
    if (CView::OnCreate(lpCreateStruct) == -1)
     return -1;
CString  strFileName,strmapath;
TRY
{
     CString strLic = _T("uQnZi2sFw22L0-MRa8pYX-1E4P9013-5N7M4407-3C934214-04969-5285");
     BSTR bstrLic = strLic.AllocSysString();
     BOOL b = m_MapX.Create(NULL, WS_VISIBLE, CRect(0,0,300,400), this, IDC_MAP, NULL, FALSE, bstrLic);
     ::SysFreeString(bstrLic);
     if(!b)
     {
       b= m_MapX.Create(NULL, WS_VISIBLE, CRect(0,0,300,400), this, 100,NULL,FALSE,NULL);
       return -1;
     }
     if(!b)
    {
      AfxMessageBox(_T("Can't Create MapX"));
      return FALSE;
    }
    strmapath = L"[url=file:////My]//My[/url] Documents//Maps//xa.gst";
    m_MapX.SetGeoSet(strmapath);
    TRY
    {
       int n=m_MapX.GetLayers().GetCount();
       for(int i=1;i<n;i++)
      {
        CMapXLayer layer = m_MapX.GetLayers().Item(i);
        switch(layer.GetType())
        {
          case miLayerTypeNormal:
          {
            if(layer.GetDatasets().GetCount()>0) continue;
            CString str = layer.GetName();
            str += _T("_Dataset");
            COleVariantDispatch vLayer(layer);
            m_MapX.GetDatasets().Add(miDataSetLayer,vLayer,str);
            break;
           }
          case miLayerTypeRaster:
          case miLayerTypeSeamless:
          case miLayerTypeUnknown:
          case miLayerTypeUserDraw:
          case miLayerTypeDrilldown:
          break;  
        }
      }
    }
    CATCH (COleDispatchException, e)
   {
     e->ReportError();
   }
   AND_CATCH (COleException, e)
  {
   e->ReportError();
  }
  END_CATCH

  m_MapX.GetTitle().SetVisible(FALSE);
  m_MapX.SetPreferCompactLegends(TRUE);
  m_MapX.SetMapUnit(miUnitKilometer);
  m_MapX.SetPaperUnit(miPaperUnitKilometer);
  m_MapX.Refresh();
  }
  CATCH (COleDispatchException,e)
  {
    e->ReportError();
  }
  AND_CATCH (COleException,e) {
   e->ReportError();
  }
  END_CATCH
  return 0 ;
}