1

我目前正在学习 C++(通过 Koenig & Moo 的 Accelerated C++ 学习),最近我决定在 Windows 中了解 MS Visual C++。以前我在 Linux 中只使用 vim 和 G++ 完成了所有的编程。我想实现一个类,没什么特别的,只是书中名为 Vec 的示例类,而我以前从未在 Visual C++ 中这样做过。所以,我选择了“新项目”->“类库”,我遇到了这个问题:

// Vec.h

#pragma once

using namespace System;

namespace Vec {

public ref class Class1
{
    // TODO: Add your methods for this class here.
};
}

现在,我知道这本书并不特定于任何特定的开发环境,但实际上这些东西都与我在那里看到的不一样。我只见过在头文件中定义的类,例如:

#ifndef VEC_H
#define VEC_H

class Vec {
public:
    // things here

private:
    // other things here
};

#endif

类库是用于其他用途,还是我正在阅读的书已过时?谁能给我一些关于发生了什么以及这两个定义有何不同的想法?

4

2 回答 2

3

您选择创建一个 .NET 类库。Visual C++ 可以将 C++/CLI 代码编译成 .NET 程序和库。这几乎肯定不是你想要的。

选择“Win32”项目类型之一,可能是“Win32 控制台应用程序”,以获得包含标准 C++ 代码的项目。

如果您想要一个新课程,则不应为此使用“新项目”对话框。“新建文件”对话框包含用于 C++ 头文件、源文件和其他有用内容的模板选项。

于 2012-11-05T20:29:30.457 回答
3

ref class您选择了一个使用 .NET 框架的 C++/CLI 模板(请参阅: )。它实际上是一种完全不同的语言。

就个人而言,我总是为 DLL 或简单的 exe 选择空项目(我说“简单”是因为,如果我正在制作类似 MFC UI 的东西,我会使用他们的模板来添加所有无意义的样板代码)并添加我的文件/根据需要进行配置。

于 2012-11-05T20:29:45.347 回答