VC6工程迁移到VC2008 SP1中,使用MFC 9.0静态链接后运行错误的解决办法

微软前不久发布了Visual Studio 2008 Service Pack 1,其中包含了据说是有BCGSoft提供的一些新类,可以直接使用Office 2007/Visual Studio 2005的界面,闻之大喜,终于不用再眼馋BCGControlBar和Xtreme Toolkit这些付费的库了,为了获得VC6的界面,俺还在用自己4年前写的库:)

花了半天时间把手上的工程由VC6迁移到了VC2008,使用动态链接到MFC,一切正常(可惜在中文环境下字体很难看,这个貌似是一个BCG Library的bug,回头等有空再来解决它)。考虑到客户机上可能没有MFC 9.0的DLL,于是改成了静态链接,可惜编译链接没问题,运行时却出错了。

出错的位置位于AfxTabCtrl.cpp第1395行,一个ENSURE宏断言错误,看上去是找不到一个字符串资源。这种错误最为头疼,仔细检查了compiler和linker的设置,使用的库版本,没有发现错误,只好使用土办法“最小系统法”,用VC6生成一个MDI工程,转换到VC2008,加入一个CDockablePane派生的窗口,使用静态链接……果然同样的错误,接着生成了一个空的VS2005 like的空项目,然后从代码入手,一一对比检查,还是没有找到错误的地方,到底问题出在哪呢?忽然想到,或许应该从最原始的地方入手,既然是找不到IDS_AFXBARRES_CLOSEBAR定义的字符串,那么就找找看它

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值