当前位置:首页 > VS2010 - C++指导教程
例如,您可以使用 如何:编写文本文件 示例程序(位于“编程指南”中的“文件处理和 I/O???节点)。 如果要使用示例程序,请注意在创建 .NET 对象时,您可以使用 gcnew关键字(而非 new),且 gcnew 返回一个句柄 (^) 而不是指针 (*):
StreamWriter^ sw = gcnew StreamWriter(fileName);
有关新 Visual C++ 语法的更多信息,请参见 Language Features for Targeting the CLR。 7. 在“生成”菜单上,单击“生成解决方案”。
“输出”窗口显示有关编译过程的信息,如生成日志的位置,以及指示生成状态的消息。
如果进行了更改,并在未执行生成的情况下运行该程序,则对话框可能指示该项目已过期。如果要让 Visual Studio 始终使用文件的当前版本,并且在每次生成应用程序时不发出提示,请在单击“确定”之前选中此对话框上的复选框。
8. 在“调试”菜单上,单击“开始执行(不调试)”。
9. 如果您使用的是示例程序,则在运行程序时将显示一个命令窗口,指示已创建了该文本文件。按任意键,关闭
该命令窗口。
textfile.txt 文本文件现在位于您的项目目录中。您可以使用记事本打开此文件。
说明 选择空 CLR 项目模板会自动设置 /clr 编译器选项。若要验证这一点,请在“解决方案资源管理器”中右击该项目,再单击“属性”,然后选中“配置属性”的“常规”节点中的“公共语言运行时支持”选项。 演练:编译 C 程序
Visual C++ 2010 中包括一个 C 编译器,可用来创建从基本的 C 程序到 Windows API 应用程序的各种程序。 此演练演示如何使用文本编辑器创建一个基本的 C 程序,然后在命令行上对其进行编译。
您可以使用自己的 C 程序,而不是键入此演练中所示的示例程序。也可以使用帮助主题中包含的任何 C 代码示例程序。 默认情况下,Visual C++ 编译器将以 .c 结尾的所有文件视为 C 源代码,将以 .cpp 结尾的所有文件视为 C++ 源代码。若要强制编译器将所有文件视为 C(而不管文件扩展名如何),请使用 /Tc 编译器选项。
创建 C 源文件并在命令行上对其进行编译
1. 单击“开始”,指向“所有程序”、“Microsoft Visual Studio 2010”和“Visual Studio 工具”,然后单击“Visual
Studio 2010 命令提示”。
根据计算机上的 Windows 版本和系统安全配置,可能必须右击“Visual Studio 2008 命令提示”,然后单击“以管理员身份运行”,才能成功运行按下列步骤创建的应用程序。
说明 “Visual Studio 2010 命令提示”会自动设置 C 编译器和所需的任何库的正确路径。应使用它而不是使用普通的“命令提示符”窗口。有关更多信息,请参见为命令行生成设置路径和环境变量。 2. 在命令提示符下,键入 notepad simple.c,并按 Enter。
在系统提示是否创建文件时,单击“是”。 3. 在记事本中,键入下列各行。
#include
int main() {
printf(\ return 0; }
4. 在“文件”菜单上,单击“保存”,以创建 C 源文件。 5. 关闭记事本。
6. 在命令提示符下,键入 cl simple.c,并按 Enter。
cl.exe 编译器将生成一个可执行程序 Simple.exe。
您可以在编译器显示的多行输出信息中看到可执行程序的名称。
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00 for 80x86 Copyright (C) Microsoft Corporation.All rights reserved.simple.c Microsoft (R) Incremental Linker Version 10.00
Copyright (C) Microsoft Corporation.All rights reserved./out:simple.exe
simple.obj
7. 若要查看 \\simple\\ 目录中的所有文件的列表,请键入 dir simple.* 并按 Enter。
.obj 文件是一个中间格式文件,可以安全地忽略它。 8. 若要运行 Simple.exe,请键入 simple 并按 Enter。
该程序显示以下文本并退出:
This is a native C program.
9. 若要关闭命令提示符窗口,请键入 exit 并按 Enter。
创建 Windows 应用程序 (C++)
现在我们学习了 Visual Studio IDE 和命令行应用程序,下面将学习如何创建 Windows 应用程序。使用 Visual C++,可以通过使用多种不同的技术来创建 Windows 应用程序,如 Windows API(也称为 Win32 API)和 .NET Framework。 在本节中,我们将通过使用 Win32 API 和 .NET Framework 创建两个简单的 Windows 应用程序。我们还将通过使用 .NET Framework 创建 Windows 窗体控件,最后将通过使用 DirectX 创建一个简单的游戏。
创建 Win32 应用程序 (C++)
Win32 API(也称为 Windows API)是用于创建 Windows 应用程序的基于 C 的框架,自 Windows 1.0 以来就已存在。在 Windows API 中可以找到有关此 API 的大量文档。
在本过程中,我们将创建向窗口显示“Hello, World!”的简单 Win32应用程序。过程中的步骤对于所有 Win32 应用程序都是相同的。完成此过程后,您可以将这里创建的代码用作创建任何其他 Win32 应用程序的主干。
创建新的 Win32 项目
1. 在“文件”菜单上,单击“新建”,然后单击“项目...”。
2. 在“项目类型”窗格中,选择“Visual C++”节点中的“Win32”,然后在“模板”窗格中选择“Win32 项目”。
键入项目的名称,如 win32app。您可以接受默认位置、键入一个位置或者导航到要保存项目的目录。 3. 在“Win32 应用程序向导”中,选择“下一步”。
4. 在“Win32 应用程序向导”中,在“应用程序类型”下选择“Windows 应用程序”。在“附加选项”下选择“空项目”。
原样保留剩余的选项。单击“完成”创建项目。
5. 在“项目”菜单中选择“添加新项...”,将 C++ 文件添加到项目中。在“添加新项”对话框中选择“C++ 文件
(.cpp)”。为文件键入一个名称,如 GT_HelloWorldWin32.cpp,并单击“添加”。
启动 Win32 应用程序
1. 正如您所了解的,每个 C 和 C++ 应用程序必须具有一个 main 函数。此函数是应用程序的起始点。类似地,
在 Win32 应用程序中,每个应用程序必须具有一个 WinMain 函数。WinMain 的语法如下所示:
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance, LPSTR lpCmdLine,
int nCmdShow);
有关此函数的参数和返回值的解释,请参见 WinMain 函数。
2. 因为应用程序代码必须使用现有的定义,所以应将 include 语句添加到文件中以使用它们。例如:
#include
3. 除 WinMain 外,每个 Win32 应用程序还必须具有第二个函数(通常称为 WndProc),它代表窗口过程。
WndProc 的语法如下所示:
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
此函数的用途是处理应用程序从操作系统接收的任何消息。应用程序何时从操作系统接收消息?始终接收!例如,假设我们创建了包含“确定”按钮的对话框。当用户单击该按钮时,操作系统向应用程序发送消息,使我们知道某位用户按下了此按钮。WndProc 函数负责响应该事件。在本示例中,适当的响应可能是关闭对话框。 有关更多信息,请参见窗口过程。
向 WinMain 添加功能
1. 首先,在 WinMain 函数内部创建 WNDCLASSEX 类型的窗口类结构。此结构包含有关窗口的信息,如应用程序
图标、窗口的背景色、在标题栏中显示的名称、窗口过程函数的名称等等。典型的 WNDCLASSEX 结构如下:
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
有关此结构的字段解释,请参见 WNDCLASSEX。
2. 现在已经创建了窗口类,接下来您必须注册它。使用 RegisterClassEx 函数,并将窗口类结构作为参数传递:
if (!RegisterClassEx(&wcex))
共分享92篇相关文档