VS2008/2005 MFC程序调试经验

2023-03-07,,

我的VS2008不知道是有bug还是自己的问题,很多时候变量定义后CTRL+F5运行却没反应,一定要“生成解决方案”下才行?

1、没有可用于当前位置的源代码

将工具->选项->调试->常规->去掉“要求源文件与原始版本完全匹配”复选框就OK

在解决方案资源管理器中右击解决方案->属性->通用属性->调试源文件。在不查找这些源文件对话框中查看是否有你想要调试的源文件,如果有就删除这一行,保存。

2、已触发了一个断点

VS2008再出怪现象:已触发了一个断点!!很是悲催:程序完全正常,在拖进来的List Control空间中右击添加control变量CListCtrl m_ctrListServerConnect;调试无奈的提示:已触发了一个断点,调试都无法进行,寻找答案无果,把m_ctrListServerConnect;涉及到的地方全部屏蔽,m_ctrListServerConnect;加了个s重新自己写了一遍,问题解决。

3、不能将参数 1 从“const char [10]”转换为“const wchar_t *”

CString str;
str.Format("Amount Remaining $ %.2f", m_Amt_Remaining);),
上VC6中上述代码没有问题,但在Visual stdio 2008中编译中有错误:

错误提示:
error C2664: “void ATL::CStringT::Format(const wchar_t *,...)”:不能将参数 1 从“const char [10]”转换为“const wchar_t *”

VS2008默认是UNICODE环境(当然你可以在项目属性中改成使用多字节字符集就可以啦)
所以把你所有字符串相关的操作都用_T() TEXT() 包含起来
str.Format(_T("Amount Remaining $%.2f",m_Amt_Remaining));

4、LINK : fatal error LNK1000: Internal error during IncrBuildImage

用下面的方法手工来改工程设置
项目(Project)->属性(Property)->链接器(Linker)->常规(General) 下面的“启用增量链接(Enable Incremental Linking)”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”。不过这又引入了另外一个警 告:FormatCom.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/INCREMENTAL:NO”规范)

选择项目,属性(Property pages)->配置属性(Configuration Properties) ->C/C++,修改“调试信息格式(Debug Information Format)”为“程序数据库(Program Database(/Zi))”即可。

参考资料:http://blog.csdn.net/xiangyunl/archive/2010/08/22/5830481.aspx

5、fatal error C1083: 无法打开包括文件:“afxcontrolbars.h”: No such file or directory!!

把#include <afxcontrolbars.h> 注掉,后面加一行
#define CWinAppEx CWinApp:
也即是如下的修改:
//#include <afxcontrolbars.h> // MFC support for ribbons and control bars
#define CWinAppEx CWinApp

6、VC6.0向VS2008转换时出现的问题:消息映射:VS2008中消息映射的方法必须有返回类型,当然不一定是LRESULT

error C2440: 'static_cast' : cannot convert from 'void (__thiscall CSongserverView::* )(WPARAM,LPARAM)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'

应该是VC6项目迁移向高版本时发生的,VC6后消息的检查更为严格,以前在VC6下完全正常运行的消息映射在其它版本下编译不通过。

解决方法如下:
首先,把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return TRUE; 然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个参数是否用得到;最后,消息映射如ON_MESSAGE(WM_message,& OnMyMessage)

7、SQL Server2005 只有配置工具,而没有查询分析器、企业管理器的解决方法

其实只需要下载个Microsoft SQL Server Management Studio Express(SSMSE)

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796#RelatedDownloads

如果上述方法仍然不管用,那就很可能是下列原因了:

SQL server 2005 的不同版本需要操作系统也要相应的版本.

在运行的地方输入:SqlWb.exe或程序/sql server 2005/SQL Server Management Studio(注意:请确保已经安装Microsoft SQL Server Management Studio Express(SSMSE)

安装的时候注意实例名不要与现有实例重复

转自:http://blog.csdn.net/xintianyou_/article/details/7045712

8、IE8正式版引发VS2005和VS2008添加变量向导出错的解决方案(MFC当前页发生脚本错误!!!)

运行命令:regedit,调出注册表定准:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones找到1000的项,如果不存在1000这一项的话,首先添加;在此项(1000)中添加一个DWORD值名称为1207,类型为REG_DWORD,数据为0x00000000,也就是0了.重新打开VS2005/2008

VS2008/2005 MFC程序调试经验的相关教程结束。

《VS2008/2005 MFC程序调试经验.doc》

下载本文的Word格式文档,以方便收藏与打印。