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

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

如将一个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++ ->优化->优化改为 自定义

重新编译,运行。

转载于:https://www.cnblogs.com/gghost/p/3256950.html

VS2005迁移项目工程所带来问题相关推荐

  1. 【复杂系统迁移 .NET Core平台系列】之迁移项目工程

    源宝导读:微软跨平台技术框架-.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件.本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验. ...

  2. 【STM32】MDK5打开MDK4项目工程时出现的不兼容及解决方法

    问题描述 最近在使用MDK5的时候发现了一个问题,先看一下现有的MDK的版本信息: 在用MDK5打开MDK4版本的项目工程的时候,通常会跳出一个窗口Using an MDK Version 4 Pro ...

  3. svn 地址中文_iGit自助迁移SVN工程解密

    19年Q2集团整体启动SVN到Git迁移项目,12个事业群目前共迁移了3000+工程.240G代码库.在整个迁移过程中,何如保证平滑.稳定是重要基础工作.通过Git迁移的底层技术栈,解密版本管理工具差 ...

  4. XX公司数据库迁移项目可行性研究与风险评估

    XX公司数据库迁移项目可行性研究与风险评估 请尊重知识,请尊重原创 更多资料参考请见  http://www.cezuwang.com/listFilm?page=1&areaId=906&a ...

  5. 使用git将本地项目工程推送到码云上

    1.在本地使用Intellj IDEA构建项目工程,整个项目工程结构如下图所示: 2.在工程根目录下面,使用git Bash打开git客户端: 3.使用git init初始化项目,此时会在工程根目录下 ...

  6. VS项目工程管理技巧

    本文首发于「视觉项目实战营」:传送门. 我们在管理较大型的项目工程时,有时需要为了便于每次生成的dll以及lib文件能管理起来更加方便,必须要使用点小技巧,此处分享一下我们在开发中使用的一种技巧,供大 ...

  7. css网页设计实例代码_大型电商平台设计实例:电商平台项目工程、数据库选型、代码库...

    电商平台微服务体系架构 经过一系列的微服务设计, 下面使用一张维导图完整表示这个电商平台的微服务架构设计模型,如图 3-6 示. 这是一个为简单的电商平台微服务架构设计模型,并且使用了粗粒度的微服务划 ...

  8. 分析vue-cli@2.9.3 搭建的webpack项目工程

    前言 已经有很多分析Vue-cli搭建工程的文章,为什么自己还要写一遍呢.学习就好比是座大山,人们沿着不同的路登山,分享着自己看到的风景.你不一定能看到别人看到的风景,体会到别人的心情.只有自己去登山 ...

  9. Jyputer 项目工程设置Github同步,本地代码上传Github实例演示

    首先在 Github 上创建一个仓库,它将用于存储.同步本地 Jyputer 里的项目. 获取到仓库的 SSH 地址. 下面的文件夹就是我想同步的项目工程. 在当前文件夹下依次使用如下命令: git ...

最新文章

  1. centos6卸载mysql服务器_CentOS6.5下卸载自带的MySQL数据库安装MySQL5.6
  2. 谷歌新深度学习系统可以促进放射科医生的发展
  3. python3+requests库框架设计08-发送邮件
  4. 前端测试简述及使用Karma/Mocha实现的集成测试栗子(Travis CI/Coverage)
  5. skb_shinfo(skb)-dataref 含义
  6. 再回首Java第十一天
  7. 大一计算机绩点3算什么水平,绩点只有3?我可以解释一下
  8. C++学习——c语言和C++语言中的struct
  9. landset8各波段_landsat8波段
  10. 使用freemarker模板生成word文档
  11. linux单用户模式single=1,Linux 单用户模式single mode
  12. 教你三种Model(AR)中自定义验证规则的方法
  13. PHP中文分词扩展 SCWS
  14. git 设置和取消代理
  15. html 时间控件 只选择年,js时间控件只显示年月
  16. 哔哩哔哩视频下载到电脑,bilibili UWP下载的视频重命名,blibli视频下载到电脑...
  17. 常用背景色RGB数值
  18. matlab去除图片水印_怎么用matlab从含有水印的图像中提取出水印
  19. 哈哈,word 多少页 一千字?
  20. xen html挂件桌面不显示,桌面图标不显示

热门文章

  1. ORA-00911错误及解决方法(另附所有ora错误原因及解决方法 网址)
  2. Error:Elements in iteration expect to have ‘v-bind:key‘ directives
  3. express怎么读取html,Express 配置HTML页面访问的实现
  4. redis-shake简介
  5. 让我变得开朗了很多哦
  6. 工龄是怎么计算的?几个月算工龄吗?
  7. 三年级小孩近视150度需要戴近视眼镜么?
  8. “千里家书只为墙,让他三尺又何妨”,六尺巷是怎么形成的?
  9. 做训练营需要具备什么样必备条件?
  10. 见过一些能力非常强的但创业总是失败