VC6常见问题

合集下载

VC6.0打开文件时出错、无法添加使用的解决办法

VC6.0打开文件时出错、无法添加使用的解决办法

VC6.0打开文件时出错、无法添加使用的解决办法win7下VC6 打开添加无法使用的解决办法:
1.下载微软发布的补丁,filetool,不过是以未编译工程的形式发布的.解压出来,记住路径
2.找到目录,双击 filetool.dsw运行,(用VC6打开 filetool.dsw文件)
3.选择 win32 release编译方式,编译
4.找到release 目录,拷贝filetool.dll
5.找到VC6安装目录下的这个目录,粘贴
6.在VC6中工具栏右击,选择最下面的选项:自定义
找到最后一个选项卡,浏览到那个dll,然后勾上filetool就行了
7.以后打开文件,添加文件,使用新出现的这两个按钮代替原来的打开,添加就好了
相关阅读
03-24·《PCTOOL9.0硬盘维修工具集》修复0磁道损坏硬盘图文教程。

VC6快捷键和常见错误

VC6快捷键和常见错误

VC++6.0快捷键1、检测程序中的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。

如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。

2、查看一个宏(或变量、函数)的宏定义把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的Go To Defition Of …),如果没有建立Browse files,会出现提示对话框,确定,然后就会跳到定义那些东西的地方。

3、格式化一段乱七八糟的源代码选中那段源代码,按A TL+F8。

4、在编辑状态下发现成员变量或函数不能显示删除该项目扩展名为.ncb文件,重新打开该项目。

5、如何整理ClassView视图中大量的类可以在classview 视图中右键新建文件夹(new folder),再把具有相近性质的类拖到对应的文件夹中,使整个视图看上去清晰明了.6、定位预处理指定在源文件中定位光标到对称的#if, #endif,使用Ctrl+K.7、如何添加系统中Lib到当前项目在Project | Settings | Link | Object/library modules:输入Lib名称,不同的Lib之间用空格格开.8、如何添加系统中的头文件(.h)到当前项目.#include ,告诉编译到VC系统目录去找;使用#include "FileName.h",告诉编译在当前目录找.9、如何在Studio使用汇编调试在WorkBench的Debugger状态下按CTRL+F7.10、怎样处理ClassZiard找不到的系统消息如果要在ClassWizard中处理WM_NCHITTEST等系统消息,请在ClassWizard中Class Info页中将Message filter改为Window就有了.11、如何干净的删除一个类先从Workspace中的FileView中删除对应的.h和.cpp文件,再关闭项目,从实际的文件夹中删除对应的.h和.cpp文件与.clw文件。

VC6.0常见错误信息分析

VC6.0常见错误信息分析

1.程序开发过程中出现的错误类型我们在进行程序设计时,不可避免地会犯错误。

程序中的错误可以分为三类:编译错误、运行时错误和逻辑错误。

1.1编译错误编译错误(Compile errors)又称为编译时错误(Compiling-time errors): 是由于错误的编码产生的。

例如关键字拼写错误、将中文标点符号当成英文符号使用、遗漏了某些必要的标点符号或者使用了一个没有定义的标识符。

编译错误一般都是语法错误,当编译器对程序进行语法检查时,都能发现这些错误,并能够指出产生错误的位置(标出行号)。

我们可以根据编译出错信息指出的行号找到对应的源代码行改正错误,重新编译源程序。

只有当所有的编译错误被改正后,才能通过编译检查,产生目标代码文件。

改正编译错误的关键是要能正确理解编译器给出的编译错误信息。

VC++环境中的编译、链接错误信息是用英文表示的。

对于英文基础薄弱的读者,可以参考本实验指导书后面的“VC++编译、链接常见错误和警告信息中英文对照”。

通常情况下,一个语法错误可能产生多条编译错误信息,这是由于株连错误造成的,建议读者在处理编译错误时,找到第一个出现错误的位置改正后重新编译。

这样能够避免被株连错误迷惑。

值得指出的是,现在大部分编译器对错误的定位不精确,如果在编译器指出的行没有发现错误,应该向前查找错误。

例如,当提示第10行发生错误时,如果在第10行没有发现错误,请从第10行开始往前查找错误并修改之。

1.2运行时错误运行时错误(Run-time errors)是在程序的运行阶段出现的,当运行环境检测到程序的某些操作无法执行,例如除数为零时,就会出现运行时错误。

当运行环境检测到程序的某些操作是被禁止的,也会产生运行时错误。

例如,访问数组时超越数组的边界,空指针引用(NULL pointer assignment,空指针赋值,即有指针未赋具体地址就使用了)等等。

1.3逻辑错误逻辑错误(Logic errors):当程序没有按照程序员的意图执行时,就表明程序中存在逻辑错误。

Vc6常见问题解决办法

Vc6常见问题解决办法

Vc6.0常见问题解决方案一、安装下载安装,在这里不在赘述,相信大家都没问题。

记住自己的安装位置,如我的安装路径为:D:\Program files\Microsoft Visual Studio二、安装完成无法运行有些同学在win8下安装VC6.0,无法正常运行,在这里给大家提供一个方法,以本人的安装路径为例:1、找到安装路径下,\Common\MSDev98\Bin文件夹中的MSDEV.EXE文件,将其重命名为MSDEV1.EXE;2、选择MSDEV1.EXE,右键->属性->兼容性->以兼容模式运行这个程序,选择Windows7->确定;3、将原来的快捷方式删除,重新生成一个快捷方式。

4、OK,问题解决。

三、打开文件或添加文件到工程时程序崩溃相信很多同学都遇到过这个问题,本人也是受害者之一,今天来帮助大家拜托困扰。

工具/原料,自行下载(1)VC++6.0(2)修复工具:FileTool.exe步骤:1、下载FileTool.压缩包后,解压得到FileTool.exe,双击FileTool.exe文件再次解压,指定解压路径E:\filetool\,解压后到目录E:\filetool\下有个文件:FileTool.dsw文件2、打开VC++6.0,点击【文件】,【打开工作空间】,选择刚解压出来的目录E:\filetool\下的FileTool.dsw,并确定3、点击【组件】下面的【组件FileTool.dll】,会在解压目录E:\filetool\debug\下生成FileTool.dll文件4、在VC++6.0中点击【工具】,【定制】,在出现的“定制”对话框中,点击【附加项和宏文件】,点击【浏览】,定位刚才生成的FileTool.dll文件,选择类型为Add-ins(.dll),然后选择FileTool.dll文件,点击打开即可!5、此时VC中会出现一个上面只有两个A和O图标的工具栏,关闭VC6.0并重新启动程序6、取消原来的打开文件快捷键:在VC++6.0中点击【工具】,【定制】,点击【键盘】标签,在“类别”下选择“文件”,在“命令”下选择“FileOpen”,在“当前键”窗口中选择CTRL+O条目,并点击“移去”7、取消原来的插入工程文件快捷键:在VC++6.0中点击【工具】,【定制】,点击【键盘】标签,在“类别下选择“工程”,在“命令”下选择“InsertFilesIntoProject”,如果之前给它注册了快捷键,则按照上面所说步骤移除之,默认情况下它是没有快捷键的8、增加新的插入和打开快捷键:在VC++6.0中点击【工具】,【定制】,点击【键盘】标签,在“类别下选择“Add-Ins”,在“命令”下分别选择AddFileToProject和OpenFile两个条目,分别配置快捷键位【Ctr+N】、【Ctr+O】,快捷键可以根据实际情况分配9、经过以上的设置,VC++6.0可以正常打开文件和插入文件四、有些情况下,以上步骤中第4步添加附加项和宏文件时会出现错误:VC++ Unable toregister this add-in because its DllRegisterServer returns an error(因为该add-in DLL(注册服务返回一个错误而导致了其无法注册),解决方法如下:1、以管理员身份打开控制台窗口,使用注册命令"regsvr32.exe" + add-in.dll,比如本人测试时的完整命令为:D:/>regsvr32.exe “D:\Program files\Microsoft Visual Studio\ Common\MSDev98\AddIns\FileTool.dll”;2、显示注册成功,继续之后的步骤即可。

VC6编译及链接过程中常见的出错提示

VC6编译及链接过程中常见的出错提示

Visual C++ 6.0编程环境的使用目录4 编译与链接过程中常见的出错提示 (1)4.1编译、链接问题的解决方法 (1)(1)努力读懂VC报告的错误与警告信息 (1)(2)定位问题所在行 (1)(3)解决问题的方法 (1)(4)避免被VC误导 (1)(5)编译链接问题的解决不代表程序正确 (2)4.2常用单词与术语 (2)4.3常见编译错误信息 (4)(1)error C2001: newline in constant (4)(2)error C2017: illegal escape sequence (4)(3)error C2015: too many characters in constant (4)(4)error C2137: empty character constant (5)(5)error C2018: unknown character '0x##' (5)(6)error C2041: illegal digit '#' for base '8' (5)(7)error C2065: 'xxxx' : undeclared identifier (5)(8)error C2086: 'xxxx' : redefinition (6)(9)error C2374: 'xxxx' : redefinition; multiple initialization (6)(10)error C2143: syntax error : missing ';' before (identifier) 'xxxx'或before 'type' (6)(11)error C4716: 'xxx' : must return a value (7)(12)error C2006: #include expected a filename, found '(' / found 'identifier' / found 'newline' (7)(13) error C2039: 'aver' : is not a member of 'STU' (7)(14)error C2043: illegal break (7)(15)error C2046: illegal case / error C2047: illegal default (8)(16)error C2050: switch expression not integral (8)(17)error C2051: case expression not constant (8)(18)error C2079: 'da' uses undefined struct 'data' (8)(19)error C2081: 'num2' : name in formal parameter list illegal (9)(20)error C2122: 'num2' : prototype parameter in name list illegal (9)(21)error C2082: redefinition of formal parameter 'aver' (9)(22)error C2172: 'fread' : actual parameter is not a pointer : parameter 1 (9)(23)error C2198: 'FindMin' : too few actual parameters (10)(24)error C2087: '<Unknown>' : missing subscript (10)(25)error C2133: 'num' : unknown size (10)(26)error C2106: '=' : left operand must be l-value (10)(27)error C2108: subscript is not of integral type (10)(28)error C2109: subscript requires array or pointer type (10)(29)error C2181: illegal else without matching if (11)(30)error C2296: '%' : illegal, left operand has type 'double ' (11)(31)fatal error C1004: unexpected end of file found (11)(32)fatal error C1021: invalid preprocessor command 'defint'/'hinclude' (11)(33)fatal error C1083: Cannot open include file: 'sdtio.h': No such file or directory (11)(34)error C2220: warning treated as error - no object file generated (11)4.4常见编译警告信息 (12)(1)warning C4129: 'm' : unrecognized character escape sequence (12)(2)warning C4508: 'main' : function should return a value; 'void' return type assumed (12)(3)warning C4098: 'change' : 'void' function returning a value (12)(4)warning C4700: local variable 'xxx' used without having been initialized (12)(5)warning C4013: 'print' undefined; assuming extern returning int (13)(6)warning C4047: '=' : 'int *' differs in levels of indirection from 'int ' (13)(7)warning C4024: 'fun' : different types for formal and actual parameter 2 (13)(8)warning C4133: 'function' : incompatible types - from 'int [128]' to 'char *' (13)(9)warning C4022: 'fread' : pointer mismatch for actual parameter 1 (14)(10)warning C4018: '<' : signed/unsigned mismatch (14)(11) warning C4305: '=' : truncation from 'const double ' to 'float ' (15)(12)warning C4553: '==' : operator has no effect; did you intend '='? (15)(13)warning C4715: 'fun' : not all control paths return a value (15)4.5常见链接错误 (16)(1)error LNK2001: unresolved external symbol _main (16)(2)error LNK2005: _main already defined in xxxx.obj (16)(3)fatal error LNK1168: cannot open Debug/P901.exe for writing (17)4.6T URBO C V2.0编译错误信息的英汉对照表 (17)4 编译与链接过程中常见的出错提示4.1 编译、链接问题的解决方法(1)努力读懂VC报告的错误与警告信息编译、链接过程中,主要由于初学和录入阶段的击键失误,VC经常会提示程序有错(语法和拼写问题,肯定不会指明算法有问题,否则就不用编程了)。

vc6.0中常见错误提示信息

vc6.0中常见错误提示信息

Visual‎ C++常见错误信息‎VC编译出错‎时会指示出程‎序错误的位置‎,鼠标双击出错‎信息行,就可以实现错‎误的定位。

1、fatal error C1083: Cannot‎open includ‎e file: 'R…….h': No such file or direct‎o ry不能打开包含‎文件“R…….h”:没有这样的文‎件或目录。

2、error C2018: unknow‎n charac‎t er '0xa3'不认识的字符‎'0xa3'。

(一般是汉字或‎中文标点符号‎)3. fatal error C1004: unexpe‎c ted end of file found源文件的…{‟‎与…}‟不匹配。

4、error C2057: expect‎e d consta‎n t expres‎s ion希望是常量表‎达式。

(一般出现在s‎wi tch语‎句的case‎分支中)5、error C2065: 'abc' : undecl‎a red identi‎f ier“abc”:标识符没定义‎,有两种可能,一是未定义;二是在引用时‎标识符的名字‎写错了。

6、LINK : fatal error LNK116‎8: cannot‎open Debug/P1.exe for writin‎g连接错误:不能打开P1‎.exe文件,以改写内容。

(一般是P1.Exe还在运‎行,未关闭)7、warnin‎g C4700: local variab‎l e 'bReset‎' used withou‎t having‎been initia‎l ized局部变量“bReset‎”没有初始化就‎使用。

8、 C2001: newlin‎e in consta‎n tThis error is usuall‎y caused‎by a string‎or charac‎t er consta‎n t that is missin‎g its closin‎g ' or " symbol‎9、error C2084: functi‎o n 'void __cdec‎l main(void)' alread‎y has a body在一个源文件‎中定义了两个‎m ain函数‎。

初学者使用VC6.0编程易错问题及解决办法

初学者使用VC6.0编程易错问题及解决办法

0 引言多年从事高职高专学生的C++面向对象程序设计语言教学工作,在教学中发现,由于高职高专学生基础较为薄弱及课程设置等相关问题,导致绝大部分学生在学习C++程序设计过程中,尤其是使用Microsoft Visual C++ 6.0进行程序设计时,容易出现一些常见易错问题。

C++程序设计一般来说均是高职学生接触的第一门面向对象程序设计语言,其面向对象的编程思想和方法有别于C语言以及学生常规性思维。

本文总结一些常见的初学者容易出现的错误类型,便于感兴趣的初学者借鉴使用,提高大家的学习兴趣和学习效率。

1 易错问题及解决方案1.1 头文件问题使用Microsoft Visual C++ 6.0进行C++语言程序设计不同于C的一大特点之一,C++程序设计一般都要求需要先使用#in-clude命令包含需要使用到的头文件,例如程序需要使用cin及cout输入输出命令,则需要首先包含iostream文件,否则就会编译不成功,会出现cin、cout未定义以及>>、<<类型错误的错误提示。

1.2 名字空间问题类似于头文件问题,进行C++程序编译时,需要将有关的名字空间包含进来。

例如在头文件问题阐述中,为了使用Microsoft Vi-sual C++ 6.0已经定义的输入输出语句cin、cout以及<<、>>,光是包含了头文件iostream是不够的,。

此时一样会出现cin、cout未定义以及>>、<<类型错误的错误提示。

还需要使用using namespace 命令将std名字空间包含进来,因为Microsoft Visual C++ 6.0对于cin、cout以及>>、<<的定义是放在std名字空间里面的。

1.3 多个main函数问题C++程序强调一个工程有且仅有一个主函数。

但是在实际学习和编程中,很多初学者往往习惯性在一个工程下新建多个.cpp文件,且每一个.cpp文件里面都有一个主函数。

VC6的LNK2005错误

VC6的LNK2005错误

VC6的LNK2005错误使用VC编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。

弄清楚它形成的原因,就可以轻松解决它了。

出现LNK2005错误有多种原因:1.重复定义全局变量。

2.头文件的包含重复。

3.使用第三方的库造成的。

这里只讨论使用第三方的库造成的原因的处理。

如果在程序中同时使用了多个函数库,并且这些函数库中有些函数名称有冲突,就会引起LNK2005错误。

微软提供了两套C运行期函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。

另外一种是支持多线程的:msvcrt.lib。

如果一个工程里,这两种函数库混合使用,可能会引起这个LNK2005错误,一般情况下它需要MFC的库先于普通运行期函数库被连接,因此建议使用支持多线程的 msvcrt.lib。

通常是尽量避免这样混合使用两套函数库(LIBC.lib和MSVCRT.lib)。

如果不得不同时使用两套函数库或者其它相互有冲突的函数库,可以尝试按下面所说的方法:在编译包含zlib库文件的时候,出现以下错误:Linking...MSVCRT.lib(MSVCRT.dll) : error LNK2005: _malloc already defined in LIBCD.lib(dbgheap.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _sprintf already defined in LIBCD.lib(sprintf.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fclose already defined in LIBCD.lib(fclose.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _free already defined in LIBCD.lib(dbgheap.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: __vsnprintf already defined in LIBCD.lib(vsnprint.obj)MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fflush already defined in LIBCD.lib(fflush.obj)LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:libraryDebug/Test.exe : fatal error LNK1169: one or more multiply defined symbols found产生的原因是一个函数在两个不同的Lib中都有导出(MSVCRTD 和LIBC有冲突),有两种办法处理:方法一: MSDN对此的解决方法是增加[/FORCE:MULTIPLE]连接选项. 这方式发现会有警告,但可以编译通过:LINK : warning LNK4075: ignoring /INCREMENTAL due to /FORCE specificationMSVCRT.lib(MSVCRT.dll) : warning LNK4006: _malloc already defined in LIBCD.lib(dbgheap.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _sprintf already defined in LIBCD.lib(sprintf.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _fclose already defined in LIBCD.lib(fclose.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _free already defined in LIBCD.lib(dbgheap.obj); second definition ignored MSVCRT.lib(MSVCRT.dll) : warning LNK4006: __vsnprintf already defined in LIBCD.lib(vsnprint.obj); second definition ignoredMSVCRT.lib(MSVCRT.dll) : warning LNK4006: _fflush already defined in LIBCD.lib(fflush.obj); second definition ignoredLINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library方法二:添加链接选项:/NODEFAULTLIB:<library> 如:/nodefaultlib:"libcd.lib" 该方法能编译通过,并且没有警告。

VC6.0常见问题

VC6.0常见问题

1.VC6.0常见编译错误提示(1)error C2001: newline in constant编号:C2001直译:在常量中出现了换行。

错误分析:①字符串常量、字符常量中是否有换行。

②在这句语句中,某个字符串常量的尾部是否漏掉了双引号。

③在这语句中,某个字符创常量中是否出现了双引号字符“"”,但是没有使用转义符“\"”。

④在这句语句中,某个字符常量的尾部是否漏掉了单引号。

⑤是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号。

(2)error C2015: too many characters in constant编号:C2015直译:字符常量中的字符太多了。

错误分析:单引号表示字符型常量。

一般的,单引号中必须有且只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会引发这个错误。

另外,如果语句中某个字符常量缺少右边的单引号,也会引发这个错误,例如:if (x == 'x || x == 'y') , … -值得注意的是,如果单引号中的字符数是2-4个,编译不报错,输出结果是这几个字母的ASC码作为一个整数(int,4B)整体看待的数字。

(3)error C2137: empty character constant编号:C2137直译:空的字符定义。

错误分析:原因是连用了两个单引号,而中间没有任何字符,这是不允许的。

(4)error C2018: unknown character '0x##'编号:C2018直译:未知字符‘0x##’。

错误分析:0x##是字符ASC码的16进制表示法。

这里说的未知字符,通常是指全角符号、字母、数字,或者直接输入了汉字。

如果全角字符和汉字用双引号包含起来,则成为字符串常量的一部分,是不会引发这个错误的。

(5)error C2041: illegal digit '#' for base '8'编号:C2141直译:在八进制中出现了非法的数字‘#’(这个数字#通常是8或者9)。

目前最完整的visual studio 6.0(特别是vc6.0)无法安装之迷

目前最完整的visual studio 6.0(特别是vc6.0)无法安装之迷

[原创]目前最完整的:visual studio 6.0(特别是vc6.0)无法安装之迷本人历时两个星期终于解决了常见的visual studio 6.0(特别是vc6.0)无法安装问题,现将经验与大家分享:问题:1 Java虚拟机问题表现:安装VC6.0时,出现“更新Microsoft Virtual Machine for Java”这个是必选,不然就没有下一步,而如果选了后出现提示要重新启动。

重新启动后,又出现同样的提示,如此循环。

原因:没有安装Java虚拟机解决方法:安装Java虚拟机(很容易就可以从网上下到)2系统文件问题(适用范围不限于visual studio 6.0)xp用户表现:出现警告:窗口标题是: 16位Windows系统内容: C:\WINDOWS\SYSTEM32\CONFIG.NT. 系统文件不适用于运行MS-DOS与Microsoft Windows应用程序. 请选择"关闭"终止应用程序.原因:WinXP下, 某些应用程序无法在Win32模式下运行.解决方法:插入WinXP的安装盘到光驱中,在命令提示符下面分别执行如下命令(假设你的系统安装在C:下面, 光驱为F:)expand F:\i386\config.nt_ C:\windows\system32\config.ntexpand F:\i386\autoexec.nt_ C:\windows\system32\autoexec.ntexpand F:\i386\command.co_ C:\windows\system32\重启即可.其他操作系统读者可参考/yjcpu3重装问题xp用户表现:I安装向导在你的机器上检测到Visual Studio 6.0产品潜在的版本冲突。

安装后,可能单个或全部产品不能工作。

是否希望继续?II 安装完文件,进行系统更新时,出现:“安装程序无法创建一个DCOM用户帐号来注册 ...."最终无法安装成功原因:安装前原有Visual Studio 6.0没有卸载干净,注册表里还有Visual Studio 6.0在原帐户里的注册信息解决方法:彻底清除原有数据与信息执行以下步骤将从系统中完全删除所有 Visual Studio 和 MSDN Library 组件。

在64位系统上安装VC6.0常见错误的解决方法

在64位系统上安装VC6.0常见错误的解决方法

在64位系统上安装VC6.0常见错误的解决方法
因为VC6.0支持WIN32系统,所以要安装到64位计算机时会有兼容性错误,解决问题的方法如下:
第一种:无法打开afxres.h文件,一般都是配置的路径问题。

点开工具—选项命令,在选项对话框中选择目录选项卡。

然后重新配置路径,要使显示的路径与安装程序的路径一致。

第二种情况,显示无MS….dll文件等。

只需要将该文件复制到C:\\Windows\\SysWOW64中就可以了。

差几个就复制几个,先一个一个的复制,然后观察。

第三种:针对win8环境。

首先安装好后,打开路径,将MSDEV 修改成MSDEV1或其他,然后点击右键,选择“属性”。

在属性对话框选中兼容性选项卡,在更改所有用户中,设置兼容模式为“windows 7”,以“管理员身份运行”。

确定,运行MSDEV1即可。

VC++6.0常见错误信息对照

VC++6.0常见错误信息对照

Visual C++ 6.0 常见错误信息对照表1.Fatal error C1001:Internal complier error致命错误C1001 内部编译器错误。

这是VC自身存在的BUG。

该问题最早在Microsoft Visual Studio 6.0 Service Pack 6 中得到了纠正。

要解决给问题,请到微软网站下载最新的 Visual C++ 6.0 Service Pack。

2.Fatal error C1010:unexpected end of file while lookingfor precompiled header diective寻找预编译头文件路径时遇到了不该遇到的文件尾。

一般是没有#include”stdafx.h”。

3.Fatal error C1083:Cannot open includefile:’R······H’:No such file or ditectory不能打开包含文件“R······H”:没有这样的文件或目录。

4.error C2011:’C······’:’class’type redefinition类”C······”重定义。

5.error C2018:unknown character’0xa3’不认识的字符’0xa3’。

一般是汉字或中文标点符号。

6.error C2057:expectde constant expression希望是常量表达式。

一般出现在switch语句的case分支中。

7.error C2065:’IDD_MYDIALOG’:undeclared identifier“IDD_MYDIALOG”:未声明过的标识符。

vc6.0常见错误及分析

vc6.0常见错误及分析

vc6.0常见错误及分析1、fatal error C1010: unexpected end of file while looking for precompiled header directive。

寻找预编译头文件路径时遇到了不该遇到的文件尾。

提示: 一般是在文件最前面没有#include “stdafx.h”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 分支中,用了变量作为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 '{'句法错误:“{”前缺少“;”。

VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法

VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法

VC6.0打开⽂件以及向⼯程中添加⽂件时程序崩溃⾃动退出解决⽅法换了⼀台电脑,vc6.0程序中,点击打开⽂件以及向⼯程中添加⽂件时,程序竟然崩溃⾃动退出了。

不知什么原因,安装相同的vc程序,本本竟然出现此缘故。

但是这个操作⼜是⾃⼰经常⽤到的,所以不得不解决。

与上⼀台电脑不同的是,此电脑是win7系统,⽽上⼀个则是xp系统。

此电脑office是2010版本,⽽上⼀个则是WPS;于是乎,在⽹上查资料,来解决。

看到⽹上也有类似的问题,有的说是win7系统原因,有的说是office2007版本缘故,有的说是viso缘故。

总之,这⼏种说法,我都符合。

win7系统+office源码。

所以把⽹上解决⽅案,转过来,⽅便⼤家查询。

因为vc6.0程序,有英⽂版本和中⽂版本,以下的解决⽅案是英⽂版本的,意思就是英⽂的菜单,若有个别处,我会解析之。

需要下载⽂件FileTool,或者我已经上传资源中,同样可以下载。

下⾯是百度⽂库中的解决⽅案,按照下⾯的⽅式,我的问题已经解决。

1.下载FileTool.exe,并解压2.打开VC6.0,点击File-Open Workspace,选择刚解压出来的FileTool.dsw,并确定3.点击Bulid-Build FileTool.dll,⽣成FileTool.dll⽂件4.把⽣成的FileTool.dll⽂件拷贝到合适的地⽅(避免误删),在VC6.0中点击Tools-Customize5.在出现的“Customize”对话框中,点击Add-Ins and Macro Files标签6.点击Browse,定位刚才⽣成的dll⽂件,点击确定,然后点击OK保存设置7.此时VC中会出现⼀个上⾯只有两个图标的⼯具栏,点击其右上⾓的“X”按钮将其关闭,然后关闭VC6.0并重新启动程序8.还是在VC6.0中点击Tools-Customize(中⽂版本:⼯具——定制)9.在Customize对话框中点击Keboard标签(中⽂版本:定制对话框——键盘)10.从Category的下拉菜单框中选择File(中⽂版本:类别选项——⽂件)11.在Commands窗⼝中选择FileOpen(中⽂版本:命令选项——FileOpen)12.在Current keys窗⼝中选择CTRL+O条⽬,并点击Remove(中⽂版本:右边当前键[U]——选择Ctrol+o,点击移去)13.从Category的下拉菜单框中选择Project(中⽂版本:类别——Project)14.在Commands窗⼝中选择InsertFilesIntoProject,如果之前给它注册了快捷键,则按照上⾯所说步骤移除之,默认情况下它是没有快捷键的(中⽂版本:命令——InsertFilesIntoProject)15.从Category的下拉菜单框中选择Add-Ins(中⽂版本:类别——Add—Ins)16.这时Commands窗⼝中应该已经多出了AddFileToProject和OpenFile两个条⽬,可以给它们分配快捷键了,选择OpenFile 条⽬,然后点击Press New Shortcut Key输⼊框,按下想设置的快捷键或快捷键组合(如打开⽂件默认的快捷键CTRL+O),点击Assign可以以同样的⽅法为其它的命令设置快捷键:最后,还应该在菜单栏内做相应的改动,移除⽆法使⽤的旧Open命令,换上新的:1.在VC6.0中点击Tools-Customize2.点击File菜单,并将弹出菜单中的Open命令拖拽⾄弹出菜单之外并释放(注意:别拖到其他的菜单中,个⼈建议:直接拖到定制窗⼝中,就可以释放啦。

VC6编译与链接过程中常见的出错提示-推荐下载

VC6编译与链接过程中常见的出错提示-推荐下载

Visual C++ 6.0 编程环境的使用
目录
4 编译与链接过程中常见的出错提示 ....................................................................................................................1 4.1 编译、链接问题的解决方法...........................................................................................................................1 (1)努力读懂VC报告的错误与警告信息...........................................................................................................1 (2)定位问题所在行............................................................................................................................................1 (3)解决问题的方法............................................................................................................................................1 (4)避免被VC误导...............................................

vc6.0兼容问题和崩溃

vc6.0兼容问题和崩溃

Win7下安装VC6.0的完美解决方案一。

彻底解决兼容问题:Windows 7下载安装 Visual C++ 6.0(VC6) 全程图解网上成千上万的诸如“有没有Win7兼容的VC6的下载”、“Win7下Visual C++ 6.0不兼容问题” 之类的问题,多数意思是VC6和Win7不兼容,而现在不少学校或是考试用的还是Visual Studio套件,新的Win7或Vista系统下要安装怎么办?说实话我也一直没有试过,所以也想当然的认为Win7下就不能安装VC6,压根就100%不兼容?一直使用高版本的VS(如VS2008和现在用的VS2010)的我今天亲身在Win7下安装一次试试。

为了说明问题,我这里下载了一个简体中文版的VC6.0:Visual C++ 6.0 简体中文企业版集成SP6完美版运行setup.exe安装程序,会弹出如下的的程序兼容性助手提示框,这个是Win7在警告用户vc6存在兼容性问题:此程序存在已知的兼容性问题。

如下图,选中不再显示此消息,点“运行程序”。

(之后再有遇到“此程序存在已知的兼容性问题”的提示时候,也按这个做法处理!)接着安装,进入选择安装类型这一步的时候,要注意。

点“Custom”自定义安装类型:Custom自定义安装里,点中Tools组件,更改选项:把其中的 OLE/Com Object Viewer 取消,不选择:再返回到组件选择的时候,Tools就变为灰色的勾了,因为里面我们取消了 OLE/Com Object Viewer 这一顶:其他的就默认安装就可以了,要注意的上面已经都交代了,安装完成,出现安装成功的提示:安装完成后,启动VC6的时候,也出现“此程序存在已知的兼容性问题”的提示,按上面第一步中的处理:选中不再显示此消息,点“运行程序OK,安装完成!!!不过,还有一个小问题,就是VC6打开一个文件或工程的时候,会导致VC6崩溃而关闭。

微软针对这个问题发布了一个补丁(附件),原补丁是未编译的VC6工程,见附件 filetool_未编译.zip,大家可以手动编译一下。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

版本历史目录第一篇快捷键和代码整洁一、快捷键常用快捷键及其功能如下(按一般使用顺序):F9 设置断点(Ctrl+F9删除所有断点)F5 未编译:编译并执行;调试中:执行至下一断点F10 单步执行F11 跟踪进入函数内部(该函数实现所在工程和代码应该加入打开的dsw文件)TAB 插入一个制表符,用于对齐Ctrl+F8 自动对齐Ctrl+TAB 在已打开最近两个文档中切换,按住Ctrl不松开的情况下按TAB则可以在多个文档中切换Ctrl+B 设置条件断点Ctrl+H 文本替换Ctrl+F 查找文本Ctrl+S 保存,多保存,以免异常关机丢失数据Ctrl+Z 撤销上一次更改二、代码整洁之道参考林锐博士《高质量C++编程指南》2.1 空行空行起着分隔程序段落的作用。

空行得体(不过多也不过少)将使程序的布局更加清晰。

空行不会浪费内存,所以不要舍不得用空行。

●【规则2-1-1】在每个类声明之后、每个函数定义结束之后都要加空行。

参见示例2-1(a)●【规则2-1-2】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

参见示例2-1(b )示例2-1(a) 函数之间的空行示例2-1(b) 函数内部的空行2.2 代码行●【规则2-2-1】一行代码只做一件事情,如只定义一个变量,或只写一条语句。

这样的代码容易阅读,并且方便于写注释。

●【规则2-2-2】if、for、while、do等语句自占一行,执行语句不得紧跟其后。

不论执行语句有多少都要加{}。

这样可以防止书写失误。

示例2-2(a)为风格良好的代码行,示例2-2(b)为风格不良的代码行。

示例2-2(a) 风格良好的代码行示例2-2(b) 风格不良的代码行✧【建议2-2-1】尽可能在定义变量的同时初始化该变量(就近原则)如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。

如果引用了未被初始化的变量,可能会导致程序错误。

本建议可以减少隐患。

例如int width = 10; // 定义并初绐化widthint height = 10; // 定义并初绐化heightint depth = 10; // 定义并初绐化depth2.3 代码行内的空格●【规则2-3-1】关键字之后要留空格。

象const、virtual、inline、case 等关键字之后至少要留一个空格,否则无法辨析关键字。

象if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。

●【规则2-3-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。

●【规则2-3-3】‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。

●【规则2-3-4】‘,’之后要留空格,如Function(x, y, z)。

如果‘;’不是一行的结束符号,其后要留空格,如for (initialization; condition; update)。

●【规则2-3-5】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格。

●【规则2-3-6】一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。

●【规则2-3-7】象“[]”、“.”、“->”这类操作符前后不加空格。

✧【建议2-3-1】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d))示例2-3 代码行内的空格2.4 对齐●【规则2-4-1】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

●【规则2-4-2】{ }之内的代码块在‘{’右边数格处左对齐。

示例2-4(a)为风格良好的对齐,示例2-4(b)为风格不良的对齐。

示例2-4(a) 风格良好的对齐示例2-4(b) 风格不良的对齐对齐可以采用选择待对齐行后Alt+F8的方式。

2.5 长行拆分●【规则2-5-1】代码行最大长度宜控制在70至80个字符以内。

代码行不要过长,否则眼睛看不过来,也不便于打印。

●【规则2-5-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。

拆分出的新行要进行适当的缩进,使排版整齐,语句可读。

示例2-5 长行的拆分2.6 注释C语言的注释符为“/*…*/”。

C++语言中,程序块的注释常采用“/*…*/”,行注释一般采用“//…”。

注释通常用于:(1)版本、版权声明;(2)函数接口说明;(3)重要的代码行或段落提示。

虽然注释有助于理解代码,但注意不可过多地使用注释。

参见示例2-6。

●【规则2-6-1】注释是对代码的“提示”,而不是文档。

程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱。

注释的花样要少。

●【规则2-6-2】如果代码本来就是清楚的,则不必加注释。

否则多此一举,令人厌烦。

例如i++; // i 加 1,多余的注释●【规则2-6-3】边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。

不再有用的注释要删除。

●【规则2-6-4】注释应当准确、易懂,防止注释有二义性。

错误的注释不但无益反而有害。

●【规则2-6-5】尽量避免在注释中使用缩写,特别是不常用缩写。

●【规则2-6-6】注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。

●【规则2-6-7】当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。

2.7 匈牙利命名规范匈牙利命名法的出发点是把变量名按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解。

如命名一个全局目的文件指针:FILE* g_pDstFile;第二篇常见问题应对一、无法设置断点问题描述:按F9无法设置断点问题原因:1.工程设置没有加入调试信息2.DLL没被成功调用3.打开的cpp文件与被调用的DLL版本不匹配(路径不对,两份代码)解决办法:1. 确认工程是否加入调试信息:●在WorkSpace中右键点击工程●Settings->C/C++选项卡复选Generate browe info●Settings->Link选项卡复选Generate debug info和Link incrementally●确认,右键clean工程,然后再Build2. 确认SignallProcessor.exe工程是否正确配置运行参数,检查Settings->Debug选项卡,Program argument是否填写“-c”(读取配置文件的意思,可查看SignallProcessor的头文件了解)在exe入口函数,如SignallProcessor工程的main函数中的while循环处设置断点,然后右键调出OutPut窗口,观察是否成功调用本DLL。

如果没有,查看Decoder.conf或Ana.conf 文件是否配置正确.3. 右键点击工程Clean掉DLL,再调试,在exe入口函数设置断点查看OutPut窗口,如果调用了DLL,说明DLL生成路径与SignallProcessor.exe不同,欲设置断点的cpp对应的DLL 与SignallProcessor.exe调用的DLL不匹配。

所以需要设置该工程的DLL输出路径到SignallProcessor.exe的路径,或者生成后拷贝DLL到SignallProcessor.exe的路径。

二、断点设置错位问题描述:在A行设置断点,断点总是出现在A+n行问题原因:cpp文件与被调用的DLL版本不匹配(路径对,但做了修改)解决办法:cpp对应工程生成的是LIB(BaseDecoder):●右键点击工程Clean,需要Clean掉解码器DLL和基础解码LIB;●编译解码器DLL,如果路径正确,则应该会报错找不到基础解码LIB,如果没报错,则要找出链接到哪个LIB,并且排除错误。

(报错才对,没报错反而不对,这是验证路径的技巧)●编译基础解码工程(一定先确认没编译基础解码则解码器编译通不过)●编译解码器工程cpp对应工程生成的是DLL(Decoder):●右键点击工程Clean掉解码器DLL;●编译解码器工程三、调试不到断点问题描述:成功设置断点后F5执行程序,始终不能在断点处终止问题原因:1.在本段代码运行完后才设置断点,错过时机2.在本段代码之前进入死循环3.代码前就有return语句解决办法:1. 如Register函数只运行一次,而且不方便设置断点,需要借助CYDD_ASSERT(false)报出断言,然后再进行调试2. 检查新写代码逻辑,是否会陷入死循环3. 如果代码前被错误的用了return,则删除;如果是有效性判断中被return,则查看错误原因,也许是被送去的参数就不合法。

四、出现断言错误问题描述:程序运行一段时间后,出现了断言错误。

问题原因:1.统计程序中所使用的字段,在解码器中没有注册成功,注意检查。

2.程序中所需要的dll在Decord.conf中的调用的dll未写。

3.protocolenum.ini的文件读配置文件四.非法打开文件的问题描述:程序运行一段时间后,弹出错误打开文件的对话框。

问题原因:1.fopen程序出现了两次。

四、无法出表问题描述:成功设置断点后F5执行程序,不能进入解码器问题原因:1、decorder.Conf的设置没有相应dll。

Protocolenum.ini是读配置文件的断言出现fclose。

C错误,stream!=full 进行调试,在断言的前面设置断点,一定有写错误。

导致关闭空。

初始化断言错误看看protocolenum 是不是没有写第三篇版本管理工具SVN一、提交的文件类型一般为.def、.cpp、.h、.dsp等非临时性文件,dsp文件不要轻易上传(没有修改工程设置,只添加了cpp或者头文件时可以上传)二、提交原则1.自己负责自己的代码,不要提交他人的代码,对他人的代码有修改需要上传时,应当通知该代码负责人,让他本人修改后提交2.提交前先update更新,达到与服务器版本一致3.在本机编译通过,调试正确的代码才能上传4.当发生冲突时(黄色感叹号),或上传失败时,使用SVN的TorToiseSVN->diff功能,找出原因并改正。

相关文档
最新文档