首先是我使用VC2005在不通阶段的不通感受:

刚开始安装VS2005时候感觉:真是大啊!装了我一个上午!!而且运行个VC有时能耗我好大的内存。。

刚使用VC2005时候的感受:界面挺不错,貌似功能更强大,对C++标准支持的很好,还可以用我最喜欢的Comic Sans MS字体,还支持代码收缩等等。。虽然比较慢,但是不像VC6.0那样老是出现编译死机的情况。

开始用VC2005学习写东西的时候的感受:实在没有6.0好用,限制太多,很多地方跟VC6.0不一样,而且很多功能似乎都找不到了。。还不如6.0方便。。。

使用一段时间的感受:虽然经常遇到问题但是都是有很好的解决方案的,而且相对6.0,2005的BUG少很多,总体来说如果机器配置还算可以的话,用2005是挺不错的。。

下面就是我使用VC2005遇到的以及解决了的问题:

VC遇到的以及解决了的问题

1,对于Radio控件如何正确设置属性Group?

首先要确保几个Radio控件的Tab是按顺序的(可以在对话框编辑器中按Ctrl+D将三个控件TABORDER设置在一起)。然后对第一个Radio控件选择Group属性,其他的不用选。对第一个

控件添加关联变量int m_test,并且设置初值-1,则当我们点击第一个控件m_test值是0,点击第二个m_test值是1....依此类推。

2,VC2005中添加虚函数问题:

在VC6.0中可以对类右键添加虚函数,在VC2005中需要在类属性中点击一个重写按钮,在那里添加虚函数。

3,VC2005动态添加右键菜单问题:

在VC6.0中我们可以在Project->Add To Project->Component and Control中添加组件,如添加Pop-up Menu可以实现添加右键快捷菜单的功能。但是在VC2005中我们没有这个功能

,但是我们可以手动自己添加,也不是很复杂。步骤如下(假设工程是一般MFC视图工程命名Menu):

1,自己添加一个Menu资源,例如命名为IDR_MENU1,编辑之。顶级菜单是不出现的我们可以随便设置不妨为abc。然后添加两个弹出菜单项:显示(IDM_SHOW)和退出(IDM_EXIT).
2,给CMenuView类中添加WM_RBUTTONDOWN消息的响应函数。代码如下:
void CMenuView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CMenu menu;
menu.LoadMenuA(IDR_MENU1);
CMenu* pPopup = menu.GetSubMenu(0);
ClientToScreen(&point);   //客户坐标转换成屏幕坐标
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);

CView::OnRButtonDown(nFlags, point);
}
对菜单项添加事件很Easy。动态菜单添加主要用到如下的函数:
BOOL AppendMenu(UINT nFlags, UINT_PTR nIDNewItem = 0, LPCTSTR lpszNewItem = NULL);

4,下面转帖自:
http://hi.baidu.com/freedomknightduzhi/blog/item/60a5012e512bba554fc226e9.html

恶心的2005

用VC2003一直很爽,到新公司要用2005,早听说其检查严格,没想到,完全是没事找事型的编译器.

且不说满屏幕的:

"警告 4 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 "

运行个MFC的东西就报"由于应用程序的配置不正确,应用程序未能启动"

一查才知道,这是05的特权,缺少动态库也不说,直接报个配置不正确,Fuck.不如直接弹出个警告框"程序无法运行"适用性更大呢.

这里是重置2005配置的方法:

命令行输入:devenv /resetuserdata

[[

开始执行程序时出现错误提示:
没有找到MSVCP80D.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。

解决方法:

项目->属性->配置属性->清单工具->常规->使用FAT32解决办法
改为“是”即可

此时,应该将上次产生的debug文件夹删除才能正确运行。

]]

原因大致是由于2005编译时,FAT32格式硬盘会给程序加以时间戳,换机器运行时由于时间戳不符的原因导致无法运行,如果编译机器格式为NTFS格式则也不会出现该问题。

这两天有点焦头烂额, 我们这边运行的好好的程序, 到了测试的机器上就不能启动(是根本运行不了, 而不是运行出错), 弄得我异常郁闷。 经过了一番摸索, 发现和 winxp、

win2003中为解决dll hell而引入的manifest机制有关系。而以前我们用vs2003开发, 它并没有强制程序使用manifest, 但到了vs2005中, 这已经改成必需的了, 而我们并没有按照

需要进行相关的配置, 所以程序启动不了了。 根据目前的经验, vs2005编译的程序不能启动大致有两个原因, 下面简单介绍解决办法。
1、在开发组的机器上(安装有vs2005)有时都不能启动
这一般是项目的文件被放在了fat/fat32分区上导致的, 解决方法是把它们都移动到ntfs分区上, 或者把“项目属性|Manifest Tool|General|Use FAT32 Work-around”设为yes。
2、开发组运行正常, 换到其它机器上就不行了
这一般就是系统dll(包括crt,mfc,atl等)没有正确配置导致的。 如果程序是release版, 那么很简单, 只要把“\SDK\v2。0\BootStrapper\Packages\vcredist_x86”下

的"vcredist_x86。exe"拷贝到目标机器上运行即可, 这是以x86平台为例的, 如果你用的是别的cpu平台(amd64或ia64)把x86替换成相应的内容就可以了。

注:[[ ]] 内信息转自http://hi.baidu.com/crafter%5Fxmu/blog/item/104040b44b4876768bd4b281.html

这里是"general error c101008a: Failed to save the updated manifest to the file "网上普遍的解决方法:

在用vs2005时,默认编码为unicode,如果在项目中途改变,则编译时会碰到错误general error c101008a: Failed to save the updated manifest to the file

".\Debug\Menu.exe.embed.manifest". Bpcn mt.exe .这时清理解决方案,再重新生成项目便可解决.

这里是"warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 "网上普遍的解决方法:

一般来说,这个警告没有什么影响。要想去掉这个警告的方法有:

(1)转换Code文件为Unicode格式;

(2)在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;

(3)或找出不符合Unicode格式的文件,然后在该文件的开始处加入下面的语句:

# pragma warning (disable:4819)

2005断点无法命中的解决方案

1:重新编译该工程.

2:文件的编码格式不匹配造成的;修改步骤: 菜单->文件->XXX文件另存为->编码保存(保存按钮旁边的下拉菜单)->Unicode (UTF-8 带签名)->确定

这里是"由于应用程序的配置不正确,应用程序未能启动"网上普遍的解决方法:

方法一:在类似C:\Program Files\Microsoft Visual Studio 8\VC\redi st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件: msvcm80d.dll msvcp80d.dll

msvcr80d.dll Microsoft.VC80.DebugCRT.manifest 把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以正确运行了。 其他release版、MFC程序什

么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

结果: 把这几个Dll Copy过去,无效....

方法二:工程-》属性-》配置属性-》c/c++ -〉代码生成里,修改运行时库选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要

VC的dll了。

结果:由于我的程序使用了DLL输出,使用多线程调试是不行的,必须多线程调试DLL,这招也无效....

方法三: 工程-》属性-》配置属性-》常规-》MFC的使用,选择“在静态库中使用mfc” 这样生成的exe文件应该就可以在其他机器上跑了。

结果: 告诉我缺少Boost库,编译一次Boost够我吃顿饭回来了- -

方法四: 你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装

结果: 搜索都没搜到该EXE,谁叫咱用的是盗版...

最终没有解决,下午再说.TMMD,2005.

解决了:

期间发生的问题包括:

1: Ogre的2005 Debug版本无法在其他机器上运行

错误描述为:”应用程序配置不正确……”

解决方法为:

需要开发者安装430MB左右的VS80sp1-KB926604-X86-CHS.exe库。

需要使用者安装2.59MB的VCRedist_x86.exe库。

2: Ogre的2005 Debug版本无法在其他机器上运行

错误描述为:” 应用程序正常初始化(0xc150002)失败”

解决方法为:

需要开发者安装430MB左右的VS80sp1-KB926604-X86-CHS.exe库。

需要使用者安装2.59MB的VCRedist_x86.exe库。

3:安装VCRedist_x86.exe库时报错

错误描述为:”Command Line option syntax error, Type Command /? For help”

解决方法为:

自己从VC2005目录下找到运行时目录,将其dll库拷贝出来,粘贴到应用程序目录下。

结论:
所以,想要运行2005编译后的Ogre引擎支持的相关Demo,尽量做到以下两点:

1:给予Release 版本

2:将VC运行时库的动态连接库一起拷贝过去。

转载于:https://www.cnblogs.com/CCBB/archive/2009/04/25/1443426.html

使用VC2005一些问题及解决方案(一)相关推荐

  1. VC项目配置基础 (VC6.0 和VC2005)

    转载:http://blog.csdn.net/jwcoffee/article/details/5826981 一.预处理宏 1. 通用宏 VC6.0 中: Project Setting à C/ ...

  2. VC项目配置详解(转)

    VC项目配置详解(转) http://fishboyzyf.blog.163.com/blog/static/6183821020118992835382/ VC项目配置详解 一.IDE基础配置 1. ...

  3. VC项目配置基础[转]

    一.IDE基础配置 1.字体 VC6中"Tools→Options→Format→Font"配置字体:VC2005中"工具→选项→环境→字体和颜色"配置字体. ...

  4. VC2005生成时提示error c1007错误的解决方案

    这两天在编译一个c++工程,由于vs版本问题很是困扰 使用的是VS2005,用RELEASE编译的.出现如下错误信息: 1>fatal error C1007: 无法识别的标志"-ty ...

  5. VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

    VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程 开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是 ...

  6. vc2005编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决

    vc2005编译过程中"没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题"? 的彻底解决 收藏 快毕业了,为了工作的需要,需要使用庞大的VS2 ...

  7. vc2005(visual studio)使用习惯记录

    前言: sourceinsight不支持显示utf-8的文件, 实在是一大遗憾! vim现在虽然研究的可以支持 查找函数定义, 查找函数的引用地方, 自动补全, 自动提示成员结构等, 但是实际编码的时 ...

  8. C++头文件重复包含问题分析及解决方案

    一.头文件重复包含问题分析 1) 问题重现 举例说明.假设在某个C++ 头文件 或 源文件 中,包含了A.h和B.h两个头文件: #include "A.h" #include & ...

  9. * 使用VC2005的感受 , 写给在彷徨Vc6.0 和 VC2005 之间的XDJM *

    用了3天,时间不算多, 使用了一些常用功能, 一些高级功能没有使用到,比如:分布式 类图 先说我的机器: C2.4G+256M内存 安装的是3.3G的TRM版本. VC2005 优于6.0的地方:1. ...

  10. mysql并发更新数据,多用户并发修改数据解决方案。

    mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...

最新文章

  1. python装饰器教学_Python装饰器学习(九步入门)
  2. 吴恩达团队最新成果:用深度学习来改善临终关怀服务
  3. js加载html的head偶尔失效,外部 js 文件偶尔会加载失败
  4. iOS指纹解锁和手势解锁
  5. 洛谷P1466 集合 Subset Sums
  6. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
  7. Linux修改终端显示前缀及环境变量
  8. 一点一滴培养你的领袖气质
  9. 全国计算机等级二级证书foxbase,2002年4月全国计算机等级考试二级FOXBASE笔试试题...
  10. 汉诺塔-递归算法深入理解
  11. gcc -D选项的作用
  12. centos7 hadoop3.0.1安装
  13. 阿里云服务器由于被检测到对外攻击,已阻断该服务器对其它服务器端口的访问...
  14. QT的mouseMoveEvent事件失效
  15. 阿里面试题BIO和NIO数量问题附答案和代码
  16. python网页前端和react有什么区别_Vue 和 React 的优点分别是什么?
  17. Android5.1自定义闹钟铃声,Android 设置来电铃声、通知铃声、闹钟铃声中的坑
  18. matlab正弦波用示波器测失真,请教下,自己做个正弦波信号发生器,如何测试波形的失真大小?...
  19. 什么是轻量级、重量级框架
  20. 基于PHP的学生量化管理系统

热门文章

  1. 【antd 3.x】upload上传组件预览pdf格式文件和下载ofd格式文件
  2. 汽车品牌查询及车型大全查询
  3. 电子版2寸照片的像素是多少
  4. 二进制文件和文本文件区别-小白笔记
  5. 《钢构CAD》不断致力于帮助用户取得更多成就
  6. 【Java基础笔记】ASCll码表
  7. 快速比对源代码的工具_推荐7个代码对比工具
  8. 计算机工程工艺,中国计算机学会第十届计算机工程与工艺学术年会.pdf
  9. python贪吃蛇游戏无法运行_Python贪吃蛇游戏编写代码
  10. 你该知道的杂志分区和影响因子及最新表格下载