2005迁移项目工程所带来问题

我们项目开发过程中难免要迁移工程,如对工程重命名,或将一个或多个项目添加到一个解决方案中,如果迁移方法不正确,或设置问题,总会出一些编译问题,对熟悉大侠来说可谓驾轻就熟,但对像我一样的初学者来说就会无从下手了,所以也查阅了相关资料再加上个人亲身实验,谈谈操作的相关步骤及遇到问题的解决办法。

一、重命名解决方案/项目步骤

     如将一个AAA项目重命名为BBB,一般是用sln解决方案文件打开工程的,打开后把项目AAA重命名为BBB,改后只是逻辑名改了,其物理名还是AAA.vcproj,修改成BBB.vcproj,用sln打开时会找不到该项目,有两个办法,(1)移除不可用项目,右键解决方案,添加->现有项目,选择BBB.vcproj即可,(2)用记事本直接打开sln,修改里的项目名,路径等,再用VS打开就可以了

      二、解决方案中添加多个项目

      这个其实很简单了,右键解决方案,添加->现有项目,选择相应的vcproj就可以了,需要重命名再参照上面的

       三、修改文件结构所带来预编译头问题及解决办法

       上面是以整个项目做为迁移的,操作也很简单,相信有点点动手能力的人,自己早就搞会了,我就是有点画蛇添足了。可是如果要以单个文件迁移,修改文件的结构,特别是修改预编译文件(一般是stdafx.h和stdafx.cpp),就会出现预编译错误,一般为如下三个:

1、“fatal error C1083: 无法打开预编译头文件:“Debug/DSMS.pch”: No such file or directory”

2、error C2859: ..../vc80.pdb 不是创建此预编译头时使用的 pdb 文件,请重新创建预编译头。

error C2859: ...../vc80.idb 不是创建此预编译头时使用的 idb 文件,请重新创建预编译头。

3、error LNK2001: 无法解析的外部符号 "int __cdecl _AfxInitManaged(void)" (?_AfxInitManaged@@YAHXZ)

 

      先来说一说解决办法,这三个错误可以用一个办法解决,右键你项目的预编译文件(stdafx.cpp)――>属性――>配置属性――>C/C++――>预编译头――>创建/使用预编译头选择创建预编译头->重新生成,解决。在选stdafx.cpp属性时,其实每一个文件都有自己的属性的,整个项目有属性(菜单->项目->属性),来管理所有文件,这个我也是后来才知道的(不要笑我啦),其它CPP都是“使用预编译头”,新添加的文件,项目默认设置成“使用预编译头”,所以当修改文件结构时,手动添加stdafx.cpp时就会出现上面的错误。

 

下面我们来人为的制造这三个错误,借此来说明原因。

新建一个MFC项目,修改stdafx.cpp为“使用预编译头”,删掉项目的Debug文件夹,生成就会出现第一个错误。

新建一个MFC项目,生成,修改stdafx.cpp为“使用预编译头”,用菜单中的“清理项目”清理,重新生成就会出现第两个错误。

新建一个MFC项目,生成,修改stdafx.cpp为“使用预编译头”,重新生成就会出现第三个错误。

原因其实已经很明显了,只说说第三个错误,是一个链接错误mfcs80ud.lib(stdafx.obj) : error LNK2001,我猜想是当stdafx.cpp为“创建预编译头”时就obj不会再去链接_AfxInitManaged(void)了,关于_AfxInitManaged(void)是什么也不得而知了,请高手赐教。

 

四、VS2005空项目变MFC项目步骤

1、项目->属性->配置属性->常规->MFC的使用中改成“在共享 DLL 中使用 MFC”

2、项目->属性->配置属性->常规->字符集中改成“使用 Unicode 字符集”

3、项目->属性->配置属性->链接器->高级->入口点填写“wWinMainCRTStartup”

 

以上设置MFC程序可以成功编译,不知道还有没其它设置,如果通过空项目改成的,程序不能调试,还要设置相关选项生成调试信息。

 

VS2005调试时出现无法找到调试信息解决方案

首先打开菜单项目->项目属性页

1。选择配置属性->链接器->调试->生成调试信息改为 是

2。选择配置属性->C/C++ ->常规->调试信息格式 改为用于“编辑并继续”的程序数据库(/ZI)

3。选择配置属性->C/C++ ->优化->优化改为 自定义

重新编译,运行。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sniper08/archive/2010/04/20/5506276.aspx

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值