您的当前位置:首页正文

安装、使用vc++遇到的问题及解决

2020-06-03 来源:小奈知识网
感言: 真是久病成良医啊!

1. C语言中出现“Compiling... Error spawning cl.exe ”是什么意思?怎么解决?

很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的 “Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的

选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的, “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\\VC98\\Bin”下面, 你可以到相应的路径下找到这个应用程序。

因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”

—>“Directories(目录)”重新设置“Excutable Fils、Include Files、 Library Files、Source Files”的路径。很多情况可能就一个盘符的不同 (例如你的VC装在C,但是这些路径全部在D),改过来就OK了。

如果你是按照初始路径安装vc6.0的,路径应为: executatble files:

C:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin C:\\Program Files\\Microsoft Visual Studio\\VC98\\BIN

C:\\Program Files\\Microsoft Visual Studio\\Common\\TOOLS

C:\\Program Files\\Microsoft Visual Studio\\Common\\TOOLS\\WINNT

include files:

C:\\Program Files\\Microsoft Visual Studio\\VC98\\INCLUDE

C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\INCLUDE C:\\Program Files\\Microsoft Visual Studio\\VC98\\ATL\\INCLUDE

library files:

C:\\Program Files\\Microsoft Visual Studio\\VC98\\LIB

C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\LIB

source files:

C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\SRC

C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\INCLUDE C:\\Program Files\\Microsoft Visual Studio\\VC98\\ATL\\INCLUDE C:\\Program Files\\Microsoft Visual Studio\\VC98\\CRT\\SRC

如果你装在其他盘里,则仿照其路径变通就行。 关键是microsoft visual studio\\ 后面的东西要相同。

2. 关于VC中 error C2871: 'std' : does not exist or is not a namespace

今天写了个程序用了如下代码

#include using namespace std;

然后编译时出现 error C2871: 'std' : does not exist or is not a namespace

查了一下,原来 C++有两个不同版本的头文件。引入名字空间这个概念以前编译器用的是#include

而引入名字空间的概念以后std名字空间的头文件名字变成了

是比较老的C++的头文件的版本,而namespace是98年才被加入C++标准的,所以里面是没有std这么个命名空间的,当使用 时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现。头文件则没有定义全局命名空间,使用时必须使用namespace std才能正确使用cout。

vc6.0支持这个两个版本. 不过现在都用

所以只需将以上语句改为: #include using namespace std;

或者是 #include 即可

3. 有时候vc++告诉你找不到msvcrdb60.dll?

dll扩展名归类为 Windows动态链接库文件.

扩展名解释: 1.动态链接库(Dynamic Link Library) 如果您的系统提示“没有找到msvcr71.dll”或者“缺少msvcr71.dll”等类似错误信息,请把msvcr71.dll下载到本机 方法:

一、如果您的系统提示“没有找到msvcr71.dll”或者“缺少msvcr71.dll”等类似错误信息,请把msvcr71.dll下载到本机 二、直接拷贝该文件到系统目录里 三、

1、Windows 95/98/Me系统,则复制到C:WindowsSystem目录下。 2、Windows NT/2000系统,则复制到C:WINNTSystem32目录下。 3、Windows XP系统,则复制到C:WindowsSystem32目录下。

然后打开“开始-运行-输入regsvr32 msvcr71.dll”,回车即可解决错误提示!

4.为什么我VC++6.0提示 Cannot open include file: 'streambuf': No such file or directory

在...Microsoft Visual Studio\\VC98\\Include目录下找找看有没有streambuf这个文件. 因为你的编译器版本老

iostream.h是先出来的,iostream是后面才出来的,基本上涵盖了.h的所有东西,你的编译器版本太老,还没加载iostream这个库 不过解决的方法是有的

一.编译器中的库文件版本过于旧了。。。换个VS2005或者是VS2008吧。。。 二. 这说明你的VC中没有这三个文件 exception stdexcept streambuf

下载一个streambuf,一般下载中都给你配好了这三个文件 请注意:后缀没有.h

将这三个文件放到include文件夹下,就ok了. 5. vc6.0 为什么在代码输入区中显示不出中文?

这个是你的设置问题,不是那个dll文件的问题。请你按下面的步骤(我用的是英文版的,

若你用中文版的,请你自行翻译成中文):打开VC++6。0选择在菜单栏中Tool(工具)中的Option.(选项)..然后选择Format(格式)标签(就是最后一标签)在CateGorv(类别)栏选择 Source Windows(原窗口)在Font(字体)栏选择Fixedsys字体大小你自决定,本人认为12看起来最舒服(默认好像也是12)这样应该就没问题的。以前我也遇到过像你一样的问题,重装了几次都没用。后来才发现是字体的设置问题。因为设置了不支持中文的字体了。在那里可以设置VC++的窗口的字体,不过大多都用Fixedsyg吧,除了那个Source Browser (源浏览器)和 Workspace Window(工作区窗口) 用system字体。

6. msdev98和vc98有什么区别

msdev98是VC98,VB98等语言的集成开发环境的缩写,使用VC98,就要使用msdev来编辑,连接,执行程序。

7. 建立工程中遇到的问题

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16错误 学习VC++时经常会遇到链接错误LNK2001,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。产生

LNK2001错误的原因:一个是由于编码错误导致的LNK2001,在这不想详细说.另一个由于编译和链接的设置而造成的 LNK2001.最经常发生的是:\"LIBCD.lib(wincrt0.obj) :

error LNK2001: unresolved external symbol\产生这个错误的原因是没有为wWinMainCRTStartup设定程序入口. 认识这个错误首先在新建工程时要分清Win32

Application和Win32 Console Application.它们都是工作在32位Windows环境的程序.其中Win32 Application 就是普通的常见的窗口应用程序,当然有的界面做得比较

个性化,比如圆形的、不规则形状的.它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。而Win32 Console Application

(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,或者叫CUI(Character User Interface字符用户接

口)。

遇到如下链接错误:

Linking... /subsystem:windows

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 Debug/TestWin.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe.

解决方法是:将project-settings-link的project options里的 /subsystem:windows 改成 /subsystem:console

因为Win32 Application的入口函数为WinMain Win32 Console Application的入口函数是main

也就是说,如果你编写传统的C程序,必须建立Win32 Console程序,但VC里面默认的是Win32 Application,于是上面提及的链接错误就就经常出现了

而Win32 Application和Win32 Console的区别就在于VC里链接参数不同 另外几种error LNK2001错误:

在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:

libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 下面介绍解决的方法:

1. Windows子系统设置错误, 提示:

libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: [Project] --> [Settings] --> 选择\"Link\"属性页,

在Project Options中将/subsystem:console改成/subsystem:windows 2. Console子系统设置错误, 提示:

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 控制台项目要使用Console子系统, 而不是Windows, 设置: [Project] --> [Settings] --> 选择\"Link\"属性页,

在Project Options中将/subsystem:windows改成/subsystem:console 3. 程序入口设置错误, 提示:

msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16

通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: [Project] --> [Settings] --> 选择\"C/C++\"属性页, 在Category中选择Output,

再在Entry-point symbol中填入wWinMainCRTStartup, 即可 4. 线程运行时库设置错误, 提示:

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 这是因为MFC要使用多线程时库, 需要更改设置: [Project] --> [Settings] --> 选择\"C/C++\"属性页, 在Category中选择Code Generation,

再在Use run-time library中选择Debug Multithreaded或者multithreaded 其中,

Single-Threaded 单线程静态链接库(release版本) Multithreaded 多线程静态链接库(release版本) multithreaded DLL 多线程动态链接库(release版本) Debug Single-Threaded 单线程静态链接库(debug版本) Debug Multithreaded 多线程静态链接库(debug版本) Debug Multithreaded DLL 多线程动态链接库(debug版本) 单线程: 不需要多线程调用时, 多用在DOS环境下

多线程: 可以并发运行

静态库: 直接将库与程序Link, 可以脱离MFC库运行 动态库: 需要相应的DLL动态库, 程序才能运行 release版本: 正式发布时使用 debug版本: 调试阶段使用

因篇幅问题不能全部显示,请点此查看更多更全内容