VC++ Debug & 常见 error
Phenixyf
这个作者很懒,什么都没留下…
展开
-
关于VC"致命错误 RC1004: 文件查找结束时有无法预知的错误"
关于VC"致命错误 RC1004: 文件查找结束时有无法预知的错误"发现VC6总是有莫名奇妙的错误,今天照着《Windows游戏编程大师技巧》写了个菜单资源,结果出现链接错误:"致命错误 RC1004: 文件查找结束时有无法预知的错误" 然后错误指向资源的.h文件最后一行://图标光标#define ICON_T3DX 500#de转载 2013-11-22 10:49:42 · 2993 阅读 · 3 评论 -
Run-Time check failure #3 : 报未初始化警告的解决办法。
经常在编译后报某些变量没有初始化的警告,解决办法就是初始化这些变量,但遇到自定义的结构体报这个警告,初始化自定义结构体的办法如下: struct A { int u; unsigned char * c; } stru原创 2015-10-22 15:15:47 · 23246 阅读 · 0 评论 -
VS2010 调试C++项目 fatal error LNK1123 错误解决办法
最近用VS2010写C++项目,奇怪的是每次生成解决方案都有一个fatal error LNK1123错误,提示生成失败。查阅资料总结解决方案如下:(1)项目——>属性——>连接器——>清单文件 中生成清单 “是” 修改为 “否” 该方法一般都可以解决问题,但是每次创建项目都要设置一遍。(2)查找是否有两个cvtres.exe 删除较旧版本。转载 2016-03-21 14:56:00 · 420 阅读 · 0 评论 -
使用自定义图标的MFC工程因原图标文件丢失无法building的解决办法
自定义了图标,但是在工程更换位置,或者源图标文件被不小心删除等原因,工程无法运行,打开资源文件报如下错误:生成工程报如下错误:解决办法:双击错误提示,或点第一张图的Edit Code,找到报错位置:把图标文件异常的两行注释掉即可,这样就不用自定义的图标了原创 2016-06-16 15:04:27 · 508 阅读 · 0 评论 -
IntelliSense: 无法打开 源 文件 "stdafx.h"
VS2010中包含以前的.h/.cpp文件于现在的工程中,出现IntelliSense: 无法打开 源 文件 "stdafx.h",搜寻到一些方法都不适用,比如:设置项目属性->配置属性->C/C++->预编译头->使用 (/Yu)/创建 (/Yc)/不使用预编译头三种方式都不行。虽然提示这样的错误,但是运行程序是成功的,初始化和编译运行好像使用不同的查找路径,在低版本的VS2005/VS2008转载 2016-09-07 14:22:37 · 10525 阅读 · 0 评论 -
AfxGetMainWnd调用错误
把之前用VC6写的MFC工程升级到VC2005后,编译运行就崩溃,莫名其妙,问了ZV说是经常出现这种问题,要重新建立个工程拖代码才行,那好吧,就重来,折腾了好久,还是……又崩溃了……这下头大了,同样的代码,VC6里正常,VC2005反而崩溃?尝试关闭连接的多种选项,除了出现莫名其妙的LNK ERROR以外一无所获,最后F8逐步调试,发现在_beginthread后的WaitForS转载 2016-09-07 15:14:39 · 1231 阅读 · 0 评论 -
vs2010程序运行出错 link : fatal error lnk1123: 转换到 coff 期间失败: 文件无效或损坏
不知怎么本来编译好好的VS2010环境,忽然出现“转换到 COFF 期间失败: 文件无效或损坏”的链接错误。花了好多天,试了好多方法,最终解决了这个问题。现在罗列一下这几种解决方案:方案1:点击“项目”-->“属性” --> “清单工具”,然后选择"输入和输出’ --> ‘嵌入清单’,将后面的‘是’改成‘否’就可以了方案2:在VS安装目录搜索cvtres.exe转载 2016-12-23 11:25:46 · 359 阅读 · 0 评论 -
装完WINDOWS SDK后VS2010资源编辑器打不开
打开Resource View时提示"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\rcdll.dll;D:\Program Files\Microsoft Visual Studio 10.0\VC\bin\rcdll.dllCannot find the resource compiler DLL,Please make s转载 2017-03-21 19:29:28 · 733 阅读 · 0 评论 -
串口控件MSCOMM的注册方法(使用MSCOMM串口控件程序的运行问题)
带串口控件的MFC程序,更换电脑后,源代码会出现编译通过,运行后报错的现象;执行程序双击运行也一样报错。这是因为串口控件MSCOMM没有注册,按下面的方法注册后,即可正常运行。自己使用心得:第一种注册方法:取出https://pan.baidu.com/s/1bpdfCKJ中的压缩文件。本地地址D:\Yifei\Download\VC++\控件\V2010串口控件本地地原创 2017-12-27 18:41:01 · 6355 阅读 · 0 评论 -
VS2010换成VS2013时错误汇总: /* ------自己编写*/
1. error MSB8020将vs2012的项目用vs2013编辑器打开会出现如下错误提示:错误 1 error MSB8020: The build tools for Visual Studio 2012 (Platform Toolset = 'v110') cannot be found. To build using the v110 build tools, pleas...原创 2018-04-25 19:29:11 · 1495 阅读 · 0 评论 -
VS2013 build错误:error C2440: '=' : cannot convert from 'const char [9]' to 'LPCWSTR'
在调试程序中出现的一个错误,记录下来以备后用。产生原因:这属于字符串类型不一致产生的,解决方法:1),强制类型转换:在字符串之前增加(LPCWSTR);2),在项目的属性配置中将 Character Set--->Not Set;3),在字符串之前增加 _T( )。转自:https://blog.csdn.net/qqqren/article/details/52573220...转载 2018-05-16 11:47:49 · 1166 阅读 · 0 评论 -
多字节字符集转unicode字符集报错问题
1. strcpy函数报错如下:修改如下:改成wcscpy也可以,但这时编译会报wcscpy不安全的错误建议,继续使用wcscpy也可以,需要根据错误建议修改设置。改成wcscpy_s就是多了一个参数,即第二个参数,为目标字符串的长度。参考:https://blog.csdn.net/u014628654/article/details/45246721...原创 2018-05-28 14:48:06 · 1259 阅读 · 0 评论 -
struct 定义、使用及用extern声明时注意事项
对比下面两种定义:struct A{int i;char c;float j;};这种定义结构体在使用时应该是:struct A b,c; // 定义了两个struct A 类型的变量b和c。 在VC++中,定义写成 A b,c; 也不会报错,并且可以正常运行。但是当用到多个A 时,或用到extern就很容易报错,说重复定义,例如自己写了一个函数,A原创 2015-10-22 15:08:45 · 2191 阅读 · 0 评论 -
VC程序异常中断的原因
http://zhidao.baidu.com/link?url=g4qltTocbcJ-1aIMcyIgh49Y2ZkCq1da0e7gtAgmCfFrS19vI8AizF4XwFvfaZ5rDc_ST_xsboQTfWnFTdTlMa 自己编写的VC程序,编译调试通过,运行良好,然后关闭运行界面,就弹出一个“已经触发一个中断”的提示,然后断点就停在了下面这个中断处。_CRTIM转载 2015-10-21 14:56:29 · 7315 阅读 · 0 评论 -
c++ new和delete产生的debug error
void main(){ char *p = new char; cin>>p; coutdelete p;} 在以上代码中,如果你输入:abcd,那么如你所望,你会看到"正确"的输出"c"。但是会有错误提示出现:Debug Error!Program: test.exeDAMAGE: after Normal block(#64) at 0x003429f8转载 2015-10-21 15:13:13 · 4214 阅读 · 5 评论 -
VC调试入门
概述调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。 本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个转载 2014-06-26 11:51:55 · 574 阅读 · 0 评论 -
vc调试——如何看数组元素
http://hi.baidu.com/jiaon/item/1165de274565e93395f62b52转载 2014-06-17 23:25:46 · 3995 阅读 · 0 评论 -
VC2010 CString.Format使用报错 error C2664
error C2664: “void ATL::CStringT::Format(const wchar_t *,...)”: 不能将参数 1 从“const char [12]”转换为“const wchar_t *”转载 2014-05-20 21:37:23 · 5235 阅读 · 0 评论 -
查内存泄漏的方法
1. 先查是否所有申请内存都释放,包括: new / new [] ---- delete / delete [] //注意一一对应 malloc ---- free CoTaskMemAlloc ---- CoTaskMemFree SysAllocString ---- SysFreeString SafeArrayCreate ---- SafeArrayDe转载 2014-11-13 22:50:19 · 1296 阅读 · 0 评论 -
vc 浮点数转换为内存十六进制字符串
在一些规约解析中,我们往往需要把浮点数转换成16进制的字符串 或者把16进制的字符串转换为浮点数来验证传输的正确性。下面的函数实现了浮点数到16进制字符串的转换,主要是使用了内存拷贝的方法。另外需要注意的是内存中的数据一般是底字节在前。 关于16进制字符串(可以直接从内存查看)转换到浮点数,是下面过程的逆过程,这里就不在实现。/*************************转载 2014-05-08 22:39:14 · 944 阅读 · 0 评论 -
经验分享:C++编程中的四个调试小技巧
下面介绍C++编程的四个小技巧,供大家参考。1.调试标记适用预处理#define定义一个或多个调试标记,在代码中把调试部分使用#ifdef 和#endif 进行管理。当程序最终调试完成后,只需要使用#undef标记,调试代码就会消失。常用的调试标记为DEBUG, 语句序列:#define DEBUG #ifdef DEBUG调试代码 #endif2.运行期间调试标记转载 2012-08-14 10:37:36 · 1015 阅读 · 0 评论 -
Microsoft.CppCommon.targets(574,5): error MSB6006: "mt.exe" exited with code 31.解决办法
一、问题出现 用VS编译动态库dll文件的时候,ReBuild过程中会遇到Microsoft.CppCommon.targets(574,5): error MSB6006: "mt.exe" exited with code 31.这个问题,略坑爹啊,找了半天都是英文的解决办法,也没解释清楚,于是记录分享。具体错误如下[plain] view plaincopyprin转载 2014-12-08 19:53:25 · 2793 阅读 · 2 评论 -
VC debug不能设断点
Tools->options->debugging->general->require source files to exactly match the original version.把勾去掉原创 2015-01-15 19:03:06 · 545 阅读 · 0 评论 -
VS2010在调试时产生断点错位怎么解决
总结:删掉所有临时文件和输出文件,重编工程;不行再用UltraEdit打开出问题的文件,另存为ANSI编码、换行回车选择Unix 0x0A方式后,检查是否有乱码或者换行不对,应该都能解决。问题如下:1.错误代码报错行数错位 2.debug动态跟踪错位 3.Release跟踪错位 4.断点设置自动被跳转可能的原因有三种:第一:代码和dll或者exe不一致;第二转载 2015-05-06 17:47:12 · 1221 阅读 · 0 评论 -
vs2010断点调试技巧分享
设置断点:在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点。快捷键F9。启动调试:按F5或者点击左边红框中的按钮。右边框是开始执行(不调试)Ctrl+F5。调试工具栏:下面是工具栏中对应的名称和快捷键。在调试过程中F5是执行到下一个断点。F11是逐语句,在执行到下图中的断点时,按F11会执行到Fibonacci方法里面逐步记录执行过程。F10是逐过程,与逐转载 2015-05-06 17:43:46 · 546 阅读 · 0 评论 -
标准win32 dll如何使用CString
#include http://bbs.csdn.net/topics/390139159转载 2015-07-13 18:08:43 · 815 阅读 · 0 评论 -
error C2440: 'static_cast' -----ON_WM_DEVICECHANGE()使用时在更改到x64设置下,报此错误
ON_WM_DEVICECHANGE()使用时在更改到x64设置下,报此错误。原因是对应的消息函数OnDeviceChange后的第二个参数格式需修改,由DWORD改为DWORD_PTR.解决过程中参考了下面的文章:一定要注意,函数一定要带参数。error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)...转载 2018-05-28 15:42:05 · 2008 阅读 · 0 评论