1.就是我在 MapX 的 GeosetDictionary 里把注册的地图和路径全部删除了也不能再次使用beijing.gst了是吗?
  我的意思就是即使把注册的地图和路径全部删除了也不能不能这样写:
  m_ctrlMapX.SetGeoSet("beijing.gst"); //同一个“beijing.gst” 文件
  m_ctrlMapX2.SetGeoSet("beijing.gst");
  这样可以吗?  即使我在 MapX 的 GeosetDictionary 里把注册的地图和路径全部删除了,然后工程目录下在建立一个文件夹,把 “beijing.gst”和beijing.TAB 文件复制一下放进去也不成是吗?  即:m_ctrlMapX.SetGeoSet("D:\\GD\\beijing.gst");        //仍然是同一个“beijing.gst” 文件
     m_ctrlMapX2.SetGeoSet("D:\\GD\\EagleMap\\beijing.gst");
我必须在生成一个beijing.gst才可以呢,是这样吧?2.如果是的话,我用同一个beijing.TAB 文件能两个.gst 格式的文件吗?
  即:beijing1.gst ,  beijing2.gst
  这样的话两个.gst的文件可以放到一个目录下了吗?(但公用同一个beijing.TAB文件),这样可以吗?3.请问这三句:
   TCHAR pArr[MAX_PATH]; 
   memset( pArr, 0, MAX_PATH*sizeof(TCHAR)); 
   ::GetModuleFileName( AfxGetInstanceHandle(), pArr, MAX_PATH - 1 );   我没有明白。谁能能在细点的讲讲吗?最好能有例子。

解决方案 »

  1.   

    MapX里的地图是需要注册图层的,注册了图层,地图你可以随便建,可以将已注册的地图图层加进来。
    1、两个控件加载同一个地图是可以的。但是地图文件只能是在MapX里注册的,没有注册的直接指路径是不可以的。
    2、第二个也是可以的,因为图层是共享的,多个地图文件gst中可以添加进去同一个图层。
    3、这个函数的功能是得到当前程序的完整路径。
      

  2.   

    1.明白注册图层的含义 如果你注册了图层beijing.TAB 你可能只是注册了 D:\\GD\\beijing.TAB 
    如果你还有一个一模一样的D:\\GD\\EagleMap\\beijing.TAB那么这个TAB文件可不是注册的那个。
    如果你D:\\GD\\目录下文件是这样的:
    beijing.gst
    beijing.TAB 
    ......D:\\GD\\EagleMap\\目录下文件是这样的:
    beijing.gst
    beijing.TAB 
    ......
    那你调用
    m_ctrlMapX.SetGeoSet("D:\\GD\\beijing.gst");           //仍然是同一个“beijing.gst” 文件 
    m_ctrlMapX2.SetGeoSet("D:\\GD\\EagleMap\\beijing.gst"); 
    是不会有问题的 这样相当于调用了两个不同的GST文件,同时调用了两套内容相同 但不是同一个文件的TAB文件。 这样是不会冲突的。
    2.这个方法是不行的 同一个TAB文件 同时可以被多个GST文件包含是没有问题的 但是编程序的是后 这两个GST不能同时被调用 会产生冲突。
    3.取得当前应用程序所在的目录 不明白的话 直接去Google就能找到很多内容。