在Visual C++中xcode真机调试报错一直报错,是否程序问题?

C++调试时的错误例子及解决方法
我的图书馆
C++调试时的错误例子及解决方法
-.Height==480 ) { error C2065: “m”: 未声明的标识符 像这种错误,你可以查找它的定义,在将它的定义复制到错误行的前面。如上述例子中,你可以在for的上一行添加。就可以了。 3.针对出现无法初始化问题的错误进行解析。 错误例子: TCHAR* strLastSlash = _tcsrchr( str, TEXT(‘//’) ) 错误:error C2440: “初始化”: 无法从“const wchar_t *”转换为“TCHAR *” 像这样的错误,你可以在=的右边进行强制转换。如下: TCHAR* strLastSlash = (TCHAR*)_tcsrchr( str, TEXT(‘//’) ); 4.针对警告被视为错误的问题进行解析。 错误例子: c:/dxsdk/samples/c++/misc/dxdiagreport/dxdiaginfo.cpp(322) : error C2220: 警告被视为错误- 没有生成“object”文件。 这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。 解决方案:启动Microsoft Visual Studio 2005,文件-&打开-&选择c:/dxsdk/samples/c++/misc/dxdiagreport/dxdiaginfo.cpp,然后保存。从新打开程序文件运行,此错误不再出现。 如果上述不能去掉错误,还可以点击项目,右击选择属性-&配置属性-&c/c++-&常规,将“警告视为错误”的选项改为“否”。就可以! 5.编译BaseClasses 正在编译… dllentry.cpp D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(222) : error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面) D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(222) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C2146.语法错误: 缺少“;”(在标识符“Buffer”的前面) D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int D:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include/winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int D:/DXSDK/Include/uuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失 生成日志保存在“file://d:/BaseClasses/Debug_Unicode/BuildLog.htm” BaseClasses - 5 个错误,个警告 出现错误的地方: typedef void *PVOID; typedef void * POINTER_64 PVOID64; 更改: #define POINTER_64 __ptr64///////gai typedef void *PVOID; typedef void * POINTER_64 PVOID64;//// 错误:./wxdebug.cpp(567) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int 错误地方:static g_dwLastRefresh = 0; 修改:static int g_dwLastRefresh = 0; 7.编译Capture,无法打开libci.lib 出现错误:LINK : fatal error LNK1104: 无法打开文件“libci.lib” 生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/Capture/CaptureTex/Debug/BuildLog.htm” CaptureTex - 1 个错误,个警告 错误原因:缺少数据库LIBCI.LIB在中已经不存在了 解决方案:将库文件指向VC6中的库文件。 编译Capture 出现错误:LINK : fatal error LNK1104: 无法打开文件“libci.lib” 生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/Capture/CaptureTex/Debug/BuildLog.htm” CaptureTex - 1 个错误,个警告 错误原因:缺少数据库LIBCI.LIB在中已经不存在了 编译DMODEMO 错误: ../../../Common/Src/dsutil.cpp(686) : error C2065: “i”: 未声明的标识符 错误的地方: if( i != m_dwNumBuffers ) return m_apDSBuffer[ i ]; else return m_apDSBuffer[ rand() % m_dwNumBuffers ]; 更改:在前面添加 编译DMOSAMPLE d:/DXSDK/include/dmoimpl.h(622) : error C2065: “dw”: 未声明的标识符 d:/DXSDK/include/dmoimpl.h(588): 编译类模板成员函数“HRESULT IMediaObjectImpl&_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS&::ProcessOutput(DWORD,DWORD,DMO_OUTPUT_DATA_BUFFER *,DWORD *)”时 with [ _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 ] d:/dxsdk/samples/c++/directshow/dmo/dmosample/Sample.h(21): 参见对正在编译的类模板实例化“IMediaObjectImpl&_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS&”的引用 with [ _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 ] d:/DXSDK/include/dmoimpl.h(623) : error C2228: “.dwStatus”的左边必须有类/结构/联合 d:/DXSDK/include/dmoimpl.h(624) : error C2228: “.fIncomplete”的左边必须有类/结构/联合 d:/DXSDK/include/dmoimpl.h(626) : error C2228: “.fIncomplete”的左边必须有类/结构/联合 sample.cpp d:/DXSDK/include/uuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失 d:/DXSDK/include/dmoimpl.h(622) : error C2065: “dw”: 未声明的标识符 d:/DXSDK/include/dmoimpl.h(588): 编译类模板成员函数“HRESULT IMediaObjectImpl&_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS&::ProcessOutput(DWORD,DWORD,DMO_OUTPUT_DATA_BUFFER *,DWORD *)”时 with [ _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 ] d:/dxsdk/samples/c++/directshow/dmo/dmosample/Sample.h(21): 参见对正在编译的类模板实例化“IMediaObjectImpl&_DERIVED_,NUMBEROFINPUTS,NUMBEROFOUTPUTS&”的引用 with [ _DERIVED_=CSample, NUMBEROFINPUTS=1, NUMBEROFOUTPUTS=2 ] d:/DXSDK/include/dmoimpl.h(623) : error C2228: “.dwStatus”的左边必须有类/结构/联合 d:/DXSDK/include/dmoimpl.h(624) : error C2228: “.fIncomplete”的左边必须有类/结构/联合 d:/DXSDK/include/dmoimpl.h(626) : error C2228: “.fIncomplete”的左边必须有类/结构/联合 state.cpp StdAfx.cpp util.cpp 正在生成代码… 生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/DMO/DMOSample/Debug_Unicode/BuildLog.htm” dmosample - 8 个错误,个警告 ========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过========== 更改:在出错的语句前加上DWORD_PTR 编译PlayDVD 正在链接… PlayDVD.obj : error LNK2001: 无法解析的外部符号“unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)” (?g_pfnGetThreadACP@ATL@@3P6GIXZA) ./Debug_Unicode/PlayDVD.exe : fatal error LNK1120: 1 个无法解析的外部命令 生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/DVD/PlayDVD/Debug_Unicode/BuildLog.htm” PlayDVD - 2 个错误,个警告 ========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过========== 编译DVD 错误: PlayDVD.obj : error LNK2001: 无法解析的外部符号“unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)” (?g_pfnGetThreadACP@ATL@@3P6GIXZA) ./Debug/PlayDVD.exe : fatal error LNK1120: 1 个无法解析的外部命令 生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/DVD/PlayDVD/Debug/BuildLog.htm” PlayDVD - 2 个错误,个警告 ========== 生成: 1 已成功, 1 已失败, 0 最新, 0 已跳过========== 无法解决 编译Editing 错误:xmltltst.cpp d:/DXSDK/include/uuids.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失 ./xmltltst.cpp(291) : error C2065: “k”: 未声明的标识符 ./xmltltst.cpp(304) : error C2065: “j”: 未声明的标识符 生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/Editing/XTLTest/Debug_Unicode/BuildLog.htm” XTLTest - 2 个错误,个警告 ========== 生成: 6 已成功, 1 已失败, 1 最新, 0 已跳过========== 更改:添加unsigned long k = 0 ; unsigned long j = 0 ; 编译PlayWndASF 错误: playwndasf.obj : error LNK2001: 无法解析的外部符号“unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)” (?g_pfnGetThreadACP@ATL@@3P6GIXZA) urllaunch.obj : error LNK2001: 无法解析的外部符号“unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)” (?g_pfnGetThreadACP@ATL@@3P6GIXZA) ./Debug_Unicode/PlayWndASF.exe : fatal error LNK1120: 1 个无法解析的外部命令 生成日志保存在“file://d:/DXSDK/Samples/C++/DirectShow/Players/PlayWndASF/Debug_Unicode/BuildLog.htm” PlayWndASF - 3 个错误,个警告 ========== 全部重新生成: 1 已成功, 1 已失败, 0 已跳过========== 更改: 向数据库依赖项中添加atlsd.lib 编译demos(D:/DXSDK/Samples/C++/Demos) 错误: StdAfx.cpp d:/program files/microsoft directx sdk (april 2007)/include/d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失 d:/DXSDK/Samples/C++/common/include/D3DFile.h(56) : error C2061: 语法错误: 标识符“LPDIRECTXFILEDATA” d:/DXSDK/Samples/C++/common/include/D3DFile.h(111) : error C2061: 语法错误: 标识符“LPDIRECTXFILEDATA” d:/DXSDK/Samples/C++/common/include/D3DFile.h(113) : error C2061: 语法错误: 标识符“LPDIRECTXFILEDATA” 生成日志保存在“file://d:/DXSDK/Samples/C++/Demos/Donuts4/Debug/BuildLog.htm” Donuts4 - 3 个错误,个警告 ========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过========== 更改:在dsdfile.h的顶部加入#include &dxfile.h&就可以 再次编译出现错误: ./../Common/Src/d3dfile.cpp(151) : error C2664: “D3DXLoadMeshFromXof”: 不能将参数1 从“LPDIRECTXFILEDATA”转换为“LPD3DXFILEDATA” 与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换 错误出处: if( FAILED( hr = D3DXLoadMeshFromXof( pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice, &pAdjacencyBuffer, &pMtrlBuffer, NULL, &m_dwNumMaterials, &m_pSysMemMesh ) ) ) 更改: if( FAILED( hr = D3DXLoadMeshFromXof((LPD3DXFILEDATA)pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice, &pAdjacencyBuffer, &pMtrlBuffer, NULL, &m_dwNumMaterials, &m_pSysMemMesh ) ) ) 编译d3d 编译dxtex 错误: ./dxtexdoc.cpp(694) : error C2440: “初始化”: 无法从“const char *”转换为“TCHAR *” 转换丢失限定符 ./dxtexdoc.cpp(6 : error C2440: “初始化”: 无法从“const char *”转换为“TCHAR *” 转换丢失限定符 dxtexview.cpp WINVER not defined. Defaulting to 0×0502 (Windows Server 2003) d:/program files/microsoft directx sdk (april 2007)/include/d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失 MainFrm.cpp WINVER not defined. Defaulting to 0×0502 (Windows Server 2003) d:/program files/microsoft directx sdk (april 2007)/include/d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失 StdAfx.cpp WINVER not defined. Defaulting to 0×0502 (Windows Server 2003) d:/program files/microsoft directx sdk (april 2007)/include/d3d9types.h(1385) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode 格式以防止数据丢失 正在生成代码… 正在创建浏览信息文件… Microsoft ?????????? Version 8.00.50727 Copyright (C) Microsoft Corporation. All rights reserved. 生成日志保存在“file://d:/DXSDK/Samples/C++/Direct3D/DXTex/Debug/BuildLog.htm” dxtex - 2 个错误,个警告 ========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过========== 错误地方: TCHAR* pszLeaf = strrchr(lpszPathName, ‘//’); 更改:TCHAR* pszLeaf = (TCHAR*)strrchr(lpszPathName, ‘//’); 编译后出现错误: 正在链接… CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0×0409 LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏 更改: 将在Debug模式下编译改为Release模式下编译。 编译Water(water.cpp)错误: ./Water.cpp(7 : error C2039: “Pass”: 不是“ID3DXEffect”的成员 更改: 直接去掉这句// m_pEffect-&Pass(uPass) /fur.cpp(424) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:/program files/microsoft directx sdk (april 2007)/include/d3dx9effect.h(316) : 参见“ID3DXEffect”的声明 ./fur.cpp(550) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:/program files/microsoft directx sdk (april 2007)/include/d3dx9effect.h(316) : 参见“ID3DXEffect”的声明 ./fur.cpp(567) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:/program files/microsoft directx sdk (april 2007)/include/d3dx9effect.h(316) : 参见“ID3DXEffect”的声明 ./fur.cpp(585) : error C2039: “Pass”: 不是“ID3DXEffect”的成员 d:/program files/microsoft directx sdk (april 2007)/include/d3dx9effect.h(316) : 参见“ID3DXEffect”的声明 dxutil.cpp 更改:将Pass改成小写pass。在Water编译中也是错误的!!! 编译VertexBlend(vertexblend.cpp) 错误:/vertexblend.cpp(312) : error C2065: “i”: 未声明的标识符 ./vertexblend.cpp(315) : error C2228: “.v”的左边必须有类/结构/联合 ./vertexblend.cpp(315) : error C2228: “.x”的左边必须有类/结构/联合 ./vertexblend.cpp(316) : error C2228: “.blend”的左边必须有类/结构/联合 改正:for( INT i=0; i&dwNumV i++ ) { // Set the blend factors for the vertices FLOAT a = ( pVertices[i].v.x - fMinX ) / ( fMaxX - fMinX ); pVertices[i].blend = 1.0f-sinf(a*D3DX_PI*1.0f); }///INT 问题② c:/Program Files/DXSDK/Extras/DirectShow/Samples/C++/DirectShow/BaseClasses/ctlutil.h(278) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int COARefTime(LONG); operator=(LONG); 解决方案:改为 COARefTime(LONG); int operator=(LONG); Activex 使用DirectShow的问题解决方案 下面的编译问题: strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A) strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA) 解决方法: 在xxxctrl.h中加入下面的代码 ///////////////////////////////////////////////////////////////////////////// // DllGetClassObject extern "C" STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); return AfxDllGetClassObject(rclsid, riid, ppv); } ///////////////////////////////////////////////////////////////////////////// // DllCanUnloadNow extern "C" STDAPI DllCanUnloadNow(void) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); return AfxDllCanUnloadNow(); }
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢运行程序的时候出现C++错误怎么办_百度知道
运行程序的时候出现C++错误怎么办
我运行那个CF刷雷者以后出现这情况.早上用得好好的,就是再开启程序的时候出现这情况了.
我有更好的答案
以我的xp系统为例,主要有msvcp50.dll: Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition、SCL,安装在未安装 Visual C++ 2005 的计算机上运行使用 Visual C++ 开发的应用程序所需的 Visual C++ 库的运行时组件。支持的操作系统,所以先着重检查瑞星防火墙C.baidu;3.2,此软件包安装 C Runtime (CRT)、Standard C++、ATL; Windows Server 2003; Windows XP Service Pack 2:C&#92、msvcp71、系统的运行库损坏的说;三、软件需要的运行库与系统的语言版本不一致。如图零、查毒杀毒:你游戏和XP系统有冲突造成的,如果你不会调试也没关系,重新安装下试试,这是文件运行错误:Microsoft Visual C++ Runtime LibraryRuntime Error,清理系统插件;一、如果是IE出现这个错误,你应该检查插件了(例如用360);RFWSRV.EXE所在文件夹内的运行库 检查这些文件:&#92;PROGRAM FILES&#92;RISING&#92,现在运行出错,建议重新安装;dllcache中存在的相同文件清除,否则系统会覆盖回去 去微软下载一个补丁肯定行;iexplore.exe R6025 -pure virtual function call和我遇见的一样的,开始也不好玩?displaylang=zh-cn&FamilyID=32BC1BEE-A3F9-4C13-9C99-220B62A191EEhttp://hi;三.dll.microsoft、根本无法安装;3.0、如果提示你丢失诸如“msvcp50.dll、msvcp60.dll、MSVCP60D、ATL; Windows ME.com/download/5/2/1/f48-4b16-a059-ed84b505a65d/vcredist_x86.exeMicrosoft Visual C++ 2005 Redistributable Package (x86)。 http://www.microsoft.com/downloads/details.aspx、MFC:&#92;WINDOWS&#92;system32&#92,可能会得到这样一个错误提示.com/downloads/details.dll;二。所需软件:Windows Installer 3.0、Windows Installer 3.1 或更高版本。二、看到问的人不少,但我的问题和这些有些不同,出现这个对话框按确定后、msvci70!我来告诉你,并用正常机器上的同名文件替换,替换时要把C.baidu.microsoft.com/download/5/2/1/f48-4b16-a059-ed84b505a65d/vcredist_x86.exe" target="_blank">http://download?谢谢。以下是电脑跳出来的这段话.dll”,从其他机器或者网上下载后补回到软件目录或者系统system32目录即可;3.1、软件使用最新版本并且最好是完全版本(别用破解或者绿色版)!可能的情况是:一、系统的运行库比较旧,而软件需要的是更新版本的运行库;或者系统里根本就没有软件需要的运行库://www!现在可以了;RFW&#92;Program Files&#92,选择“高级”标签,将“启用第三方浏览器扩展(需重启动)”的钩去掉;二、如果是以前安装的,以及尝试打开IE菜单“工具”、“internet选项”,当时在使用的几个网页串口就统统没了、OpenMP 和 MSDIA 库的运行时组件。对于支持并行部署模式的库(CRT、MSVCP60D.DLL、msvci70.dll、msvcp70.dll、msvcp71.dll 你可以搜索分区c中的msvc*.dll来找到它们,这些运行时组件安装在支持并行程序集的 Windows 操作系统版本的本机程序集缓存中,这一缓存也称为 WinSxS 文件夹,请问这是怎么回事呢、msvcp60、msvcp70.Internet Explorer&#92、上微软自动更新打补丁;打完补丁后还是不行,去微软下载Microsoft Visual C++ 2005 Redistributable Package (x86) <a href="http、MFC 和 OpenMP).microsoft,在你安装、运行某个软件有些时候
也许是你编写这程序的一些细节给忘写了,比如你动态分配了内存,但你忘记去释放对应的内存,或者是内存溢出。
为您推荐:
其他类似问题
您可能关注的内容
运行程序的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本帖子已过去太久远了,不再提供回复功能。开始调试程序按钮;图14开始调试程序;一次可以设置多个断点,设置了断点之后,就可以通过;程序运行至断点处暂停在断点暂停处可以通过Watc;图15程序运行至断点处暂停;当程序运行至断点处会暂停,我们可以在断点暂停处通;另外还有一个更简单的观看变量的值方法:当程序运行;移去断点:把键盘光标(插入符)移动到断点所在的行;单步运行程序就是每一次只执行一条语句就暂停;
开始调试程序按钮
开始调试程序 一次可以设置多个断点,设置了断点之后,就可以通过点击Build工具条上的开始调试程序按钮或者按键盘上的功能键F5开始调试程序。如图14所示, 程序运行至断点处暂停 在断点暂停处可以通过Watch(监视)窗口观察有关变量的值
程序运行至断点处暂停 当程序运行至断点处会暂停,我们可以在断点暂停处通过Watch窗口观察有关变量的值,如图15所示。如果Watch窗口没有显示我们所关心的变量,可以自行添加。 另外还有一个更简单的观看变量的值方法:当程序运行到断点时,把鼠标光标移动到源程序中的某个变量上,停留一秒钟就可以看到这个变量的值。 移去断点:把键盘光标(插入符)移动到断点所在的行,再次按功能键F9就可以移去断点。也可以通过点击Build工具条上的插入/移去断点按钮(手掌形状按钮)取消断点。 单步运行程序就是每一次只执行一条语句就暂停。Visual C++6.0中的调试工具提供三种单步运行方式:Step Into, Step Over, Step Out,如图16所示。Step Into命令的快捷键是功能键F11,Step Over命令的快捷键是功能键F10,Step Out命令的快捷键是功能键Shift+F9。Run to Cursor(运行到光标处)命令的快捷键是功能键Ctrl+F10。 单步运行,不进入函数内部 单步运行,可以进入函数内部 从当前函数调用中出来 运行到光标处
单步运行 每次单步运行一条语句后,都可以通过Watch(监视)窗口观察有关变量的值,或者将鼠标光标移动到源程序中的某个需要观察的变量上,停留一秒钟就可以看到这个变量的值,如图17所示。 如果我们确认当前函数中没有错误时,可以使用Step Out命令快速地执行完毕当前的函数,暂停在该函数调用的下一条语句上。 如果我们确认某一段源代码中没有错误时,可以将键盘光标(插入符)放置在这段代码的末尾处,使用Run to Cursor(运行到光标处)命令快速地执行完毕这一段代码,暂停在光标所在语句上。例如我们可以将键盘光标移动到main函数的结尾处,然后按功能键Ctrl+F10执行Run to Cursor命令。这样程序将运行到结束处停止。 将鼠标光标停留在变量上一秒钟,就可以看到这个变量的值 单步运行后,可以通过Watch (监视)窗口观察有关变量的值
单步运行后观察相关变量的值 需要停止调试程序时,可以执行Stop Debugging(停止调试)命令,如图18所示。Stop Debugging命令的快捷键是功能键Shift+F5,Restart(重新开始调试程序)命令的快捷键是功能键Ctrl+Shift+F5。Go(开始调试程序)命令的快捷键是功能键F5。 Go命令还可以使程序从当前语句运行到下一个断点处,如果后面没有断点,就运行到到程序的结尾。 除了使用快捷键和Debug(调试)菜单执行调试命令,还可以使用Debug工具条,如图19所示。使用工具条上的QuickWatch可以添加要观察的变量或者表达式。工具条上还有一些其他工具可以帮助我们查看CPU内部的寄存器(Registers)、内存单元(Memory)和堆栈(Stack)的情况。 Visual C++6.0中的调试工具功能强大,在这里我们只介绍最基本的操作。当读者积累了一定的调试经验后可以继续学习调试工具的高级使用方法。 最后要强调一点,当程序员对程序进行调试时,一定要理解程序的算法,熟悉程序的结构和流程,准确估计变量和表达式的期望值。这样才能做出正确的分析和判断。调试的过程实质上是一个思考的过程。 开始调试程序命令 重新开始调试程序命令 停止调试命令
图18 停止调试命令等 QuickWatch按钮 调试工具条
图19 调试工具条
VC++编译、链接常见错误和警告信息中英文对照 1、fatal error C1010: unexpected end of file while looking for precompiled header directive。
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include \)
2、fatal error C1083: Cannot open include file: 'R??.h': No such file or directory
不能打开包含文件“R??.h”:没有这样的文件或目录。 3、error C2011: 'C??': 'class' type redefinition
类“C??”重复定义。 4、error C2018: unknown character '0xa3'
不认识的字符'0xa3'。(一般是汉字或中文标点符号) 5、error C2057: expected constant expression
希望是常量表达式。(一般出现在switch语句的case分支中) 6、error C2065: 'IDD_MYDIALOG' : undeclared identifier
“IDD_MYDIALOG”:未声明过的标识符。 7、error C2082: redefinition of formal parameter 'bReset'
函数参数“bReset”在函数体中重定义。 8、error C2143: syntax error: missing ':' before '{'
句法错误:“{”前缺少“:”。 9、error C2146: syntax error : missing ';' before identifier 'dc'
句法错误:在“dc”前丢了“;”。 10、error C2196: case value '69' already used
值69已经用过。(一般出现在switch语句的case分支中) 11、error C2509: 'OnTimer' : member function not declared in 'CHelloView'
成员函数“OnTimer”没有在“CHelloView”中声明。 12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'
重载的函数“void reset(int)”在类“B”中找不到。 13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。 14、error C2660: 'SetTimer' : function does not take 2 parameters“SetTimer”函数不传递2个参数。 15、warning C4035: 'f??': no return value f??”函数f??没有返回值。 16、warning C4553: '= =' : op did you intend '='?
没有效果的运算符“= =”;是否改为“=”? 17、warning C4700: local variable 'bReset' used without having been initialized
局部变量“bReset”没有初始化就使用。 18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。 19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing
连接错误:不能打开P1.exe文件,以改写内容。(一般是P1.Exe还在运行,未关闭) 20、error LNK2001: unresolved external symbol \??\
连接时发现没有实现的外部符号(没有定义的变量、没有定义的函数等)。
三亿文库3y.uu456.com包含各类专业文献、行业资料、幼儿教育、小学教育、文学作品欣赏、生活休闲娱乐、外语学习资料、Visual C++6.0中的调试工具使用及常见错误93等内容。 
 used without having been 、 initialized 局部变量“bReset”没有初始化就使用...visual6.0常见错误 2页 免费
Visual C++6.0中的调试工... 暂无评价 11页 免费...  Visual C++ 6.0 调试工具使用在开发程序的过程中, 需要不断地调试自己的程序, 或检查错误, 或测试程序的稳定性, 这就需要借助调试工具来进行。 选择一个好的...  Visual_c++6.0常见错误提示汇总_其它_高等教育_教育专区...(一般出现在 switch 语句的 case 分支中) 11、...Visual_C++_6.0调试 12页 免费喜欢此文档的还喜欢 ...  如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 用visual c++ 6.0工具调试 用visual c++ 6.0工具调试,具体步骤。用visual...  Microsoft Visual C++ 6.0 基本调试说明_IT/计算机_...对于程序中的错误,VC 提供了易 用且有效的调试手段...调试工具栏,如下图 2:选择 Step Over,开始调试...  visual c++ 6.0使用方法 18页 免费 Visual_C++6.0调试功能图解... 41页 5财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进...  From 《visual C++ 6.0 开发工具与调试》 1、 2...6、 如何在非 MFC 程序中使用 ClassWizard 在工程...19、 引起 LNK2001 的常见错误都有哪些 遇到的 ...  visual_C++_6.0开发工具与调试_IT/计算机_专业资料。...19、 引起 LNK2001 的常见错误都有哪些 遇到的 ...之内,源 文件中对“func”的引用,在目标文件里即...

我要回帖

更多关于 程序出错 不弹出 调试 的文章

 

随机推荐