c++ - 外部 header 中的未识别数据类型

标签 c++ visual-studio dll include

我正在尝试使用一些运行没有问题的演示项目附带的库来编写 .dll。当我尝试 #include header 时,编译器提示某些数据类型未定义。这是生成的错误示例

1>c:\program files (x86)\audiokinetic\wwise v2012.1.4 build 4260\sdk\include\ak\wwise\utilities.h(82) : error C2061: syntax error : identifier 'LPCWSTR'
1>c:\program files (x86)\audiokinetic\wwise v2012.1.4 build 4260\sdk\include\ak\wwise\utilities.h(90) : error C2061: syntax error : identifier 'LPCWSTR'
1>c:\program files (x86)\audiokinetic\wwise v2012.1.4 build 4260\sdk\include\ak\wwise\utilities.h(97) : error C2061: syntax error : identifier 'LPCWSTR'
1>c:\program files (x86)\audiokinetic\wwise v2012.1.4 build 4260\sdk\include\ak\wwise\utilities.h(107) : error C2061: syntax error : identifier 'LPCWSTR'
1>c:\program files (x86)\audiokinetic\wwise v2012.1.4 build 4260\sdk\include\ak\wwise\utilities.h(110) : error C2061: syntax error : identifier 'DWORD'
1>c:\program files (x86)\audiokinetic\wwise v2012.1.4 build 4260\sdk\include\ak\wwise\utilities.h(113) : error C2061: syntax error : identifier 'DWORD'

添加

#include <windows.h>
#include <atlstr.h>

这个外部 utilities.h 文件解决了问题,但作为第 3 方 header ,我认为我不应该编辑它,并且考虑到这些其他演示项目#include 与我相同的 header ,它似乎建议问题出在其他地方。

谁能想出为什么会发生这种情况。我尝试使用的库是 Wwise(一种声音引擎)。这是 .libs 即时链接列表

AkSoundEngine.lib
AkMemoryMgr.lib
AkStreamMgr.lib
AkMusicEngine.lib
CommunicationCentral.lib
dxguid.lib
ws2_32.lib
dsound.lib
dinput8.lib
xinput.lib

最佳答案

通常这可以通过更改 header 包含的顺序来解决。

假设名为 header.h 的文件具有以下内容:

LPCWSTR foo;

主要是:

// This is fail.
#include "header.h"
#include <windows.h>

尝试:

// Success!
#include <windows.h>
#include "header.h"

关于c++ - 外部 header 中的未识别数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280333/

相关文章:

asp.net - 启用 32 位以在 VIsual Studio 上调试 ASP.NET 项目吗?

c++ - 如何在另一个 DLL 的 DLL 上使用 `/DELAYLOAD`

delphi - 使用 GdiPlus 卸载 DLL 时程序挂起

java - 在 Java 中使用 C++ ".lib"文件

c++ - 从 PXCImage 获取像素值到二维数组

Android OpenSL Audio Buffer underrun with native sample rate/buffer size(仅限某些设备)

c++ - 用于渲染不同对象的 VAO 和 VBO

C++ Windows 窗口是否强制唤醒等待中的线程?

c++ - static_assert 依赖于类模板

c# - C# 中的 CS0649 错误