Win32 DLL中允许的类?

时间:2012-07-11 04:44:11

标签: winapi dll nsis

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

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

编译错误是:

  

错误C2061:语法错误:标识符'MyClass'

导致编译错误的行是:

class MyClass

出了什么问题?我不允许Win32 DLL中的类?我正在使用MS Visual C ++ 2010进行编译。

1 个答案:

答案 0 :(得分:0)

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

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

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