Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我制作的 NSIS 插件可以包含 C++ 类还是只能是 C 代码?
我正在开发一个作为 Win32 DLL 的 NSIS 插件,但我在声明类的行的头文件中出现编译错误。
编译错误是:
错误 C2061:语法错误:标识符“MyClass”
导致编译错误的行是:
class MyClass
怎么了?我不允许在 Win32 DLL 中使用类吗?我正在 MS Visual C++ 2010 中编译。
多年前我犯了这个错误,花了一个小时挠头。我一直在寻找一个编译器选项,它可以选择代码是编译为 C 还是 C++,但是在 IDE 中没有可以选择的编译器选项(尽管您可以使用andcl从命令行控制它)。然而,答案很简单。/Tc/Tp
cl
/Tc
/Tp
如果源文件有.c扩展名,则编译为 C。如果源文件有扩展.cpp名,则编译为 C++。
.c
.cpp
此外,如果您将 C++ 构造(例如类)放在头文件中并将#include它们放在 C 文件中,您将遇到同样的问题。您可以使用#ifdef __cplusplus.
#include
#ifdef __cplusplus