使用 VS2005 开发 MapXtreme2008 遇到的问题

软件环境:
      主  机:WinXP SP3/ VS2008/ MapXtreme2008
      虚拟机:WinXP SP3/ VS2005/ MapXtreme2008

 

目的:
      在虚拟机环境下,对 MapXtreme2008 做二次开发。

 

问题现象:
      引用 MapInfo.CoreEngine 到项目中,编译无法通过,提示在"C:/Program Files/Common Files/MapInfo/MapXtreme/6.8.0/"目录中找不到下列文件
AllType.DLL
AppSelection.dll
AppUtil.dll
ChangeManager.dll
CommandProcessor.dll
Compiler.DLL
CoordSys.DLL
CustomProperties.dll
DAEngine.DLL
DBInfo.DLL
DBLayer.DLL
ExprPacket.dll
ExprPacketCreator.dll
FcnInfoServer.dll
Find.DLL
Geo.DLL
GeoObject.dll
GeoObjectProcess.dll
Geoset.DLL
GMLXlat.DLL
Legend.DLL
libspw_mi.dll
MapBasicInternalFcn.dll
MapBasicTranslator.dll
MapperAndLayout.dll
MIApp.DLL
MILexer.DLL
MIMetadata.dll
MILicensing.dll
MIOci.DLL
MIOdbc.DLL
MIRdb.DLL
MIRdbSpatial.dll
migdiplus.DLL
MIWindow.DLL
Program.DLL
Raster.DLL
Styles.DLL
TextFileReader.dll
Thematics.dll
Tokens.DLL
Tools.DLL
Utility.DLL
XmlUtil.DLL

 

试验过程:
      首先怀疑 licence 问题,重装 N 遍后,确定不是。
      改用 VS2008 开发环境,编译通过,于是对比两个开发环境的区别,最后发现 VS2008 使用 framework3.0 可以通过编译,使用 framework2.0 则不能。
      由于 VS2005 固定使用framework2.0,没找到如何改为 framework3.0,所以最后决定用 VS2008 开发。

 

转机:
      无意间发现 MapInfo 安装的示例程序能够在 VS2005 下正常编译,比较后发现:示例中添加的 DLL 引用其"复制本地=false",手动的则为"true"。再看 VS2008 在使用 framework2.0 与 3.0 时的区别也在于此。

 

结论:
      使用 VS2005 开发 MapXtreme2008 时,将引用的 MapInfo 动态链接库改为"复制本地=false"。

 

结语:
      VS2005 默认将引用的 DLL 全部设置为了"复制本地=true",导致对 MapXtreme 的开发项目不能通过编译,而 MapXtreme2008 的开发手册里也没有提到这一点,希望我的这次经历能帮你减少浪费的时间。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值