刚学STL,用vc6.0编译不过啊

ccgirl 2003-01-13 03:09:58
程序如下:
//#include "stdafx.h"
#include <string>
#include <list>

//using namespace std;

void main()
{

list<string> MilkShakes;

}
错误:
fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.

这是怎么回事,有什么不对吗
...全文
33 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
termite 2003-03-03
  • 打赏
  • 举报
回复
using namespcae std;
wshcdr 2003-03-03
  • 打赏
  • 举报
回复
gz
yuanhen 2003-03-03
  • 打赏
  • 举报
回复
New->projects->win32 console application 建立控制台应用程序

然后再往工程中加入C++ 源程序
(New->files->C++ Source File)
就能通过编译了

学STL建议使用BCB
OstrichFly 2003-03-03
  • 打赏
  • 举报
回复
注掉后可以设置:
project -> setting -> c/c++ -> precompied headers -> automatic use
即可通过编译
bon_jovi 2003-03-03
  • 打赏
  • 举报
回复
在vc里生成一个console的空工程,然后加入新的从c++源文件,就不需要stdafx.h了
代码之诗 2003-02-26
  • 打赏
  • 举报
回复
对了,忘说了一点,补充几句:
对于指定的预编译头文件,每个 .cpp 文件都必须包含它,且它必须是第一个被包含的头文件。这就是贴主的代码为什么不能编译通过的原因。

如果不用 VC 自动生成的工程,编译器缺省是不用预编译头文件的。所以,对于贴主这种小程序来说,不如不惹这个麻烦。要么别管 stdafx.h 的事,不要动它,要么就不用 IDE,用命令行编译。单文件的程序,用命令行远比用 IDE 简单。
代码之诗 2003-02-26
  • 打赏
  • 举报
回复
stdafx.h 是 VC 自动生成的,用来做预编译头文件。
什么叫预编译头文件呢?一般来说,在 Windows 下编程会包含大量的 SDK 头文件,这些文件的代码行数多达数十万行,而通常头文件是不生成代码的,也就是说,它们不生成对应的 .obj 文件(在 unix 上是 .o 文件)。
而对于 .c 和 .cpp 文件来说,每次编译之后就生成一个 .obj 文件,因此,如果代码没有改动,下次 build 时这个文件就不用再编译了。
这样一来,.c 和 .cpp 文件的编译速度是加快了,可是头文件还不行,编译器每次都要扫描他们,由于它们行数巨大,极大的影响了编译速度。特别是:事实上头文件(主要指系统接口头文件)常常是改动最少的文件,它们一旦生成,可能就永远都不改了。一遍遍的扫描巨大的、从来不改动的文件,效率当然很低。
因此,各家编译器为了提高编译速度,都在头文件预编译上下了功夫,而微软的方案就是指定一个特定的头文件为预编译头文件,凡是在这个头文件中 #include 的头文件,都会被预编译。在自动生成的工程中,这个头文件就是 stdafx.h。与此相配的还有一个 stdafx.cpp,它通常只有一行代码,就是 #include "stdafx.h"。这个文件在编译选项中被指定为第一个编译的,而且用户不应改动此文件,这样达到预编译头文件的目的。
别小看这个东西,你找一个带 GUI 的工程,编译几次,感受一下速度,再把 stdafx.h(或 stdafx.cpp) 里随便加个空格什么的,再来编译,编译的速度一定会很慢。当然,以后又快了。
所以, stdafx.h 的正确使用方式是:把系统接口、标准库的头文件用它 #include 进去,除第一次编译稍慢,以后就会为你节省大量的编译时间。因为这些头文件都比较大,而且你基本上不太可能去改动他们。
需要注意的是,滥用 stdafx.h 会适得其反,如果你在 stdafx.h 中包含了一个自己的头文件,而且这个头文件经常改动的话,你就会得到……在编译时喝咖啡的时间。
最后,如果你不喜欢微软自作主张的话,你可以不使用预编译头文件,或者指定另一个文件为预编译头文件。好象是在 setting 对话框的 compiler 项目中,自己找找,很好找的。

打字好累,揉手ing……
comptometer 2003-02-26
  • 打赏
  • 举报
回复
用控制台 新建工程中的win32 Console Application
Robin 2003-02-25
  • 打赏
  • 举报
回复
还有啊!
那个什么istream.ostream的玩意的怎么用!
Robin 2003-02-25
  • 打赏
  • 举报
回复
O试了!: J2eeLearner说的没错!
楼主啊:
你应该用
using namespcae std;
否则你应该
#include<string.h>
不过,我试了,不太好用!
不知道为什么!

Kendiv 2003-02-25
  • 打赏
  • 举报
回复
学习STL,建议使用VC++7.0,它与C++标准更为接近,估计是微软目前最好的C++编译器了。( CL ).

如果可以的话,最好在Linux下使用gcc。
NoneSoVile 2003-02-25
  • 打赏
  • 举报
回复
"stdafx.h"是vc中的东东,不可去掉,除非你对整个工程动手术,太麻烦
StdAfx 2003-02-25
  • 打赏
  • 举报
回复
注销那个 #include "stdafx.h"不算错,在三级警告编译的时候那只是一些警告而已。
jinyongzhi 2003-02-25
  • 打赏
  • 举报
回复
那个#include "stdafx.h"好癞啊,一注释掉就出错到底怎么回事?
StdAfx 2003-02-25
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <string>
#include <list>

using namespace std;

void main()
{

list<string> MilkShakes;

}
夜雨悠扬 2003-02-25
  • 打赏
  • 举报
回复
哥们,学STL的话,你使用控制台工程就可以了。
其他的工程有点复杂,多看看VC的书。
liu_feng_fly 2003-01-13
  • 打赏
  • 举报
回复
不要把#include "stdafx.h"注释掉
J2eeLearner 2003-01-13
  • 打赏
  • 举报
回复
#include <string>
#include <list>

using namespace std;

void main()
{

list<string> MilkShakes;

}
功名半纸 2003-01-13
  • 打赏
  • 举报
回复
你是在工程中编译的吧!把#include "stdafx.h"
加上吧!
建议使用CL命令行编译,直接快速,CL xx.cpp /GX
Visual C++ 6.0 便携特别版.by.cntrump 个人使用的感受: 1. 相当好用,主要是集成了Windows 2003的SDK,以前很多只能够用VS2008来编译的都可以用VC6来编译了。 2. 很好的支持了汇编 3. 直接搞定了Visual Assist X及WinTabs,实在太方便了 4. 便携版的安装及卸载超级简单。 5. 应该是到目前为止国人的最完美的VC6了 x. 注意:一般安装时不要去选STL的安装,有VC6的STL已经够用了。 x. 注意:下载后需使用7Zip解压缩(因为最终解压后的空间比较大) x. 注意:帮助的版本上虽然没有写SP6,但已经超越SP6了,因为直接使用了稳定的Windows 2003的SDK 作者说明: 1. 仅用于技术学习交流之用,禁止用于一切商业用途。 2. 对于使用本人的软件所造成的一切损失及后果由使用者自行承担。 3. 使用前先将压缩包解压到磁盘上,运行“安装.exe”开始初始化环境配置,这个过程仅在首次使用时执行一次。 4. 安装后会生成“unins000.exe”和“unins000.dat”前者是卸载程序,后者保存着卸载数据,请勿删除。 5. 需要卸载时,直接运行“unins000.exe”即开始卸载。 对原版的修改: 1. 解除了原版不能打开超过 256 色位图的限制。 2. 解除了原版字体选项过少的限制。 3. 增加对 .asm 和 .inc 汇编类型文件的支持,向项目添加此类文件时,会被默认归类到“Source Files”和“Header Files”分类下。 4. 替换 c2.dll 版本为 13.0.9044.0 ,支持内联汇编的 SSE 指令。 增加的内容: 1. 集成 Visual Assist X、WndTabs 插件。 2. 集成 DevTrueColour.dll 和 FileTool.dll 插件,前者是字体颜色选择插件,后者是用于 Vista 以上系统中用来替代 IDE 本身的添加和打开文件功能,以防止 IDE 崩溃。 3. 集成 VS 2008 SP1 的 ml.exe ,增加对汇编的支持。 SDK集成: 1. 集成 Windows 2003 SDK ,这是微软官方最后一个支持 VC 6 的 SDK 版本。 2. 集成 WTL 和 VFC 。 3. 集成 STL Port、SGI STL 两者任选其一,可用来代替 VC 6 自带的 STL 以获得更好的性能。 4. 集成 Native Development Kit 。 5. 集成 Masm32 ,方便编写和调试简单的汇编程序。 6. 集成 Boost C++ 库。
Visual C++ 6.0 便携特别版.by.cntrump 个人使用的感受: 1. 相当好用,主要是集成了Windows 2003的SDK,以前很多只能够用VS2008来编译的都可以用VC6来编译了。 2. 很好的支持了汇编 3. 直接搞定了Visual Assist X及WinTabs,实在太方便了 4. 便携版的安装及卸载超级简单。 5. 应该是到目前为止国人的最完美的VC6了 x. 注意:一般安装时不要去选STL的安装,有VC6的STL已经够用了。 x. 注意:下载后需使用7Zip解压缩(因为最终解压后的空间比较大) x. 注意:帮助的版本上虽然没有写SP6,但已经超越SP6了,因为直接使用了稳定的Windows 2003的SDK 作者说明: 1. 仅用于技术学习交流之用,禁止用于一切商业用途。 2. 对于使用本人的软件所造成的一切损失及后果由使用者自行承担。 3. 使用前先将压缩包解压到磁盘上,运行“安装.exe”开始初始化环境配置,这个过程仅在首次使用时执行一次。 4. 安装后会生成“unins000.exe”和“unins000.dat”前者是卸载程序,后者保存着卸载数据,请勿删除。 5. 需要卸载时,直接运行“unins000.exe”即开始卸载。 对原版的修改: 1. 解除了原版不能打开超过 256 色位图的限制。 2. 解除了原版字体选项过少的限制。 3. 增加对 .asm 和 .inc 汇编类型文件的支持,向项目添加此类文件时,会被默认归类到“Source Files”和“Header Files”分类下。 4. 替换 c2.dll 版本为 13.0.9044.0 ,支持内联汇编的 SSE 指令。 增加的内容: 1. 集成 Visual Assist X、WndTabs 插件。 2. 集成 DevTrueColour.dll 和 FileTool.dll 插件,前者是字体颜色选择插件,后者是用于 Vista 以上系统中用来替代 IDE 本身的添加和打开文件功能,以防止 IDE 崩溃。 3. 集成 VS 2008 SP1 的 ml.exe ,增加对汇编的支持。 SDK集成: 1. 集成 Windows 2003 SDK ,这是微软官方最后一个支持 VC 6 的 SDK 版本。 2. 集成 WTL 和 VFC 。 3. 集成 STL Port、SGI STL 两者任选其一,可用来代替 VC 6 自带的 STL 以获得更好的性能。 4. 集成 Native Development Kit 。 5. 集成 Masm32 ,方便编写和调试简单的汇编程序。 6. 集成 Boost C++ 库。
Visual C++ 6.0 便携特别版.by.cntrump 个人使用的感受: 1. 相当好用,主要是集成了Windows 2003的SDK,以前很多只能够用VS2008来编译的都可以用VC6来编译了。 2. 很好的支持了汇编 3. 直接搞定了Visual Assist X及WinTabs,实在太方便了 4. 便携版的安装及卸载超级简单。 5. 应该是到目前为止国人的最完美的VC6了 x. 注意:一般安装时不要去选STL的安装,有VC6的STL已经够用了。 x. 注意:下载后需使用7Zip解压缩(因为最终解压后的空间比较大) x. 注意:帮助的版本上虽然没有写SP6,但已经超越SP6了,因为直接使用了稳定的Windows 2003的SDK 作者说明: 1. 仅用于技术学习交流之用,禁止用于一切商业用途。 2. 对于使用本人的软件所造成的一切损失及后果由使用者自行承担。 3. 使用前先将压缩包解压到磁盘上,运行“安装.exe”开始初始化环境配置,这个过程仅在首次使用时执行一次。 4. 安装后会生成“unins000.exe”和“unins000.dat”前者是卸载程序,后者保存着卸载数据,请勿删除。 5. 需要卸载时,直接运行“unins000.exe”即开始卸载。 对原版的修改: 1. 解除了原版不能打开超过 256 色位图的限制。 2. 解除了原版字体选项过少的限制。 3. 增加对 .asm 和 .inc 汇编类型文件的支持,向项目添加此类文件时,会被默认归类到“Source Files”和“Header Files”分类下。 4. 替换 c2.dll 版本为 13.0.9044.0 ,支持内联汇编的 SSE 指令。 增加的内容: 1. 集成 Visual Assist X、WndTabs 插件。 2. 集成 DevTrueColour.dll 和 FileTool.dll 插件,前者是字体颜色选择插件,后者是用于 Vista 以上系统中用来替代 IDE 本身的添加和打开文件功能,以防止 IDE 崩溃。 3. 集成 VS 2008 SP1 的 ml.exe ,增加对汇编的支持。 SDK集成: 1. 集成 Windows 2003 SDK ,这是微软官方最后一个支持 VC 6 的 SDK 版本。 2. 集成 WTL 和 VFC 。 3. 集成 STL Port、SGI STL 两者任选其一,可用来代替 VC 6 自带的 STL 以获得更好的性能。 4. 集成 Native Development Kit 。 5. 集成 Masm32 ,方便编写和调试简单的汇编程序。 6. 集成 Boost C++ 库。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧