尝试编译 .dll 时,出现 interface 关键字错误

Dub*_*lew 4 c++ dll interface visual-studio

我已经在 Visual Studio 中设置了一个项目来创建一个 .dll。我在项目中包含了一个使用关键字“接口”的外部库。这给了我以下错误:

错误 C2146:语法错误:缺少“;” 在标识符“INuiAudioBeam”之前

这些是发生错误的代码行:

#ifndef __INuiAudioBeam_FWD_DEFINED__
#define __INuiAudioBeam_FWD_DEFINED__
typedef interface INuiAudioBeam INuiAudioBeam; //Error on this line
#endif
Run Code Online (Sandbox Code Playgroud)

上面的代码是我包含的外部库中头文件的一部分。在不包含库头文件的情况下编译时,项目成功构建而没有任何错误(注意:链接库不会导致任何问题)。

解决这个问题的方法是什么?是因为我有一个用于创建 dll 的外部库吗?我应该创建一个 .lib 而不是 dll 吗?

Fro*_*iwi 5

如果其他人搜索此,则问题很可能

#define WIN32_LEAN_AND_MEAN
Run Code Online (Sandbox Code Playgroud)

#include <windows.h>
Run Code Online (Sandbox Code Playgroud)

删除定义,确保包含 windows.h,并且应该为您定义接口关键字