我正在努力学习c++,但我阅读或查找的大多数教程和书籍都教会了你这一点……
(我假设像大多数教程一样,他们在一开始就在win32控制台或CLR控制台中教代码。在任何一种情况下,以下操作都不起作用。)
#include <iostream>
int main( )
{
std::cout << "Hello World\n";
return (0);
}我的集成开发环境是Visual C++ 2008速成版,他们接受这样的代码
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}或者像这样
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
return 0;
}老实说,我不知道这些有什么不同,我也不确定我是否应该下载一个旧的编译器,这样它就可以工作了。如果有人能告诉我这些有什么不同,以及从哪里开始。这会有很大的帮助。感谢编辑
我正在试着做一个简单的hello world。但我得到的错误是“系统无法找到指定的路径”。我有屏幕截图,显示了错误的样子。它还表明,当我在构建文件之前明确保存该文件时,我的项目已过期。显然,它找不到可执行文件。我转到debug文件夹,没有看到任何.exe文件。


编辑过的
好的,现在当我尝试构建项目时,我得到了以下错误
1>------ Rebuild All started: Project: test, Configuration: Debug Win32 ------
1>Deleting intermediate and output files for project 'test', configuration 'Debug|Win32'
1>Compiling...
1>stdafx.cpp
1>Compiling...
1>test.cpp
1>c:\users\numerical25\desktop\test\test\test.cpp(1) : warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\users\numerical25\desktop\test\test\test.cpp(6) : error C2653: 'std' : is not a class or namespace name
1>c:\users\numerical25\desktop\test\test\test.cpp(6) : error C2065: 'cout' : undeclared identifier
1>Build log was saved at "file://c:\Users\numerical25\Desktop\test\test\Debug\BuildLog.htm"
1>test - 2 error(s), 1 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========下面是我使用的代码
#include <iostream>
#include "stdafx.h"
int main( )
{
std::cout << "Hello World\n";
return (0);
}注意:我试着在没有#include "stdafx.h“和#include "stdafx.h”的情况下使用它,当我尝试没有#include“stdafx.h”时,它说我可能遗漏了它。
发布于 2010-02-22 06:04:02
有一个次要的问题,我在答案的其他地方看不到:当使用预编译头文件时,比如stdafx.h,您需要首先包含它们。将其更改为:
#include "stdafx.h"
#include <iostream>这应该会修复它的错误。
或者,简单地关闭预编译头文件可能更容易:项目>属性>配置属性> C/C++ >预编译头文件>将第一选项切换到“不使用预编译头文件”。它们可能对大型项目很有用,但在你学习的时候会很笨拙和烦人,因为它们有额外的规则(比如“必须首先包含”),而这些规则不是标准C++的要求。
发布于 2010-02-21 13:32:53
不知道你在问什么。您给出的前两个示例是应该(将)用VC++编译的有效C++程序。第三个示例是必须使用/CLR编译器开关(称为托管C++)编译的C++/CLI程序。
编辑:添加更多具体信息(来自下面的评论):
前两个示例是标准的(本机) C++ (尽管第二个示例具有MS专有宏)。它们会编译成本机代码。第三种是C++/CLI (对C++的“托管”扩展)。它编译成托管(.NET)代码。只有第三个代码片段以任何方式与.NET框架交互。在VS2008中使用适当的项目(不需要命令行),这三个都是绝对可构建和可运行的!
根据您的最新更新,看起来您可能已经修改了一些项目属性并更改了一些路径。应用程序正在构建中,但当您尝试通过VS运行它时(顺便说一句,您应该使用<Ctrl>+F5执行此操作),找不到可执行文件(有几种方式可以通过更改或玩弄各种设置来搞砸它)。
请注意构建和运行之间的区别。构建是编译和链接源代码的过程。Running正在启动生成的可执行文件。您似乎混淆了这两者(从您对"...out of date“对话框的抱怨中判断出来)。如果您在对项目进行更改(即使更改已保存)后尝试运行而不重新生成,则会出现"...out of date“对话框,这是正常的。只要确保你点击“是”即可。在运行项目之前,您需要构建项目。
我的建议是完全删除您的项目和解决方案。创建一个新的空项目,就像在这个现在非常重要的线程中的其他地方建议的那样,并且不要修改任何项目设置。如果这不起作用,那一定是出了严重的问题!
另一个编辑:只是为了完成,因为这个问题一直在变化:
正如其他人已经指出的,第一个代码片段的最终问题是使用预编译头(PCH)。在新的VS C++项目中,默认情况下PCH是打开的。它们的目的是在许多实现文件包含相同的头文件集时加快编译速度--避免编译器必须为每个编译单元解析头文件。
您有三个选项:
#include做任何操作。)#include放在"stdafx.h”中。在您的例子中,您应该在"stdafx.h".#includes中将#include <iostream>放在`#include“stdafx.h”之后。微软要求"stdafx.h“是编译单元中的第一个包含文件。发布于 2010-02-21 16:42:27
“区别”是书生气的。后者就是Microsoft-specific entry points。
在学习C++的过程中,我建议您使用编译器,最好是能够让您专注于C++而不是平台的操作系统。为此,我建议在Ubuntu这样的Linux发行版上使用g++。
试试this tutorial,还有许多其他类似的工具,可以让你快速克服工具的束缚,专注于C++。
https://stackoverflow.com/questions/2304834
复制相似问题