• VS2008/2005 MFC程序调试经验


    我的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_USERSoftwareMicrosoftWindowsCurrentVersionInternetSettingsones找到1000的项,如果不存在1000这一项的话,首先添加;在此项(1000)中添加一个DWORD值名称为1207,类型为REG_DWORD,数据为0x00000000,也就是0了.重新打开VS2005/2008

  • 相关阅读:
    selenium-元素无法定位解决办法
    OpenResty 最佳实践
    openresty 学习笔记小结:综合应用实例
    openresty 学习笔记六:使用session库
    openresty 学习笔记番外篇:python的一些扩展库
    openresty 学习笔记番外篇:python访问RabbitMQ消息队列
    openresty 学习笔记五:访问RabbitMQ消息队列
    openresty 学习笔记四:连接mysql和进行相关操作
    openresty 学习笔记三:连接redis和进行相关操作
    Grunt教程——初涉Grunt
  • 原文地址:https://www.cnblogs.com/maowang1991/p/3572339.html
Copyright © 2020-2023  润新知