编译MapWindowGis源码出现的重定义的问题及解决办法

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

        下载最新的MapWindowGis源码,然后写了个测试程序,出现下面的重定义错误:

 

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4444): error C2535: “long mapWindow::IImage::GetOriginalHeight(void)”: 已经定义或声明成员函数

1>       e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4435) : 参见“mapWindow::IImage::GetOriginalHeight”的声明

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4445): error C2535: “long mapWindow::IImage::GetOriginalWidth(void)”: 已经定义或声明成员函数

1>       e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4434) : 参见“mapWindow::IImage::GetOriginalWidth”的声明

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4513): error C2535: “double MapWindow::IImage::GetOriginalXllCenter(void)”: 已经定义或声明成员函数

1>       e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4440) : 参见“MapWindow::IImage::GetOriginalXllCenter”的声明

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4516): error C2535: “double MapWindow::IImage::GetOriginalYllCenter(void)”: 已经定义或声明成员函数

1>       e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4441) : 参见“MapWindow::IImage::GetOriginalYllCenter”的声明

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(11208): error C2366: “MapWindow::IImage::GetOriginalHeight”: 重定义;不同的 implementation_key 说明符

1>       e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4435) : 参见“MapWindow::IImage::GetOriginalHeight”的声明

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(11209): error C2366: “MapWindow::IImage::GetOriginalWidth”: 重定义;不同的 implementation_key 说明符

1>       e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4434) : 参见“MapWindow::IImage::GetOriginalWidth”的声明

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(11245): error C2366: “MapWindow::IImage::GetOriginalXllCenter”: 重定义;不同的 implementation_key 说明符

1>       e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4440) : 参见“MapWindow::IImage::GetOriginalXllCenter”的声明

1>e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(11247): error C2366: “MapWindow::IImage::GetOriginalYllCenter”: 重定义;不同的 implementation_key 说明符

1>               e:\2012\mapWindow\intdir\debug\testocx\mapWindow.tlh(4441): 参见“MapWindow::IImage::GetOriginalYllCenter”的声明

 

        细看源码,发现GetOriginalHeight、GetOriginalWidth、GetOriginalYllCenter和GetOriginalYllCenter四个接口函数已被废弃,被其它函数所取代,所以在源码里及odl文件注释掉这些函数的声明和实现再重新编译和注册ocx控件即可解决这些错误。

 

       如果你觉得我的博客对你有帮助,请在下面网址中博客之星评选活动中投我一票:

http://vote.blog.csdn.net/item/blogstar/clever101(单击候选人介绍下面的投他一票那个按钮)

参与投票有机会获奖:

     最佳贡献奖:通过微博分享活动就有机会获得30元充值卡一张(每周抽选5名)
    幸运奖:凡参与投票用户就有机会获得精美小礼品一份。(每周抽选5名)
    积极参与奖:所有参与投票并符合条件的用户均可获得20个下载积分。


 


原文地址:https://www.cnblogs.com/lanzhi/p/6470679.html