0

我制作的 NSIS 插件可以包含 C++ 类还是只能是 C 代码?

我正在开发一个作为 Win32 DLL 的 NSIS 插件,但我在声明类的行的头文件中出现编译错误。

编译错误是:

错误 C2061:语法错误:标识符“MyClass”

导致编译错误的行是:

class MyClass

怎么了?我不允许在 Win32 DLL 中使用类吗?我正在 MS Visual C++ 2010 中编译。

4

1 回答 1

0

多年前我犯了这个错误,花了一个小时挠头。我一直在寻找一个编译器选项,它可以选择代码是编译为 C 还是 C++,但是在 IDE 中没有可以选择的编译器选项(尽管您可以使用andcl从命令行控制它)。然而,答案很简单。/Tc/Tp

如果源文件有.c扩展名,则编译为 C。如果源文件有扩展.cpp名,则编译为 C++。

此外,如果您将 C++ 构造(例如类)放在头文件中并将#include它们放在 C 文件中,您将遇到同样的问题。您可以使用#ifdef __cplusplus.

于 2012-07-11T09:21:24.103 回答