我正在尝试使用一些演示项目附带的库来编写.dll,这些项目运行起来没有任何问题。当我尝试#include一个头文件时,编译器报告没有定义某些数据类型。以下是生成的错误的示例
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>
这个外部的uilties.h文件解决了这个问题,但是因为它是第三方的头文件,我不认为我应该编辑它,并且考虑到这些其他演示项目#包括与我相同的头文件,它似乎表明问题出在其他地方。
有没有人能想到为什么会发生这种事。我尝试使用的库是Wwise (一个声音引擎)。下面是.libs im链接的列表。
AkSoundEngine.lib
AkMemoryMgr.lib
AkStreamMgr.lib
AkMusicEngine.lib
CommunicationCentral.lib
dxguid.lib
ws2_32.lib
dsound.lib
dinput8.lib
xinput.lib
发布于 2012-09-05 19:28:22
通常,这可以通过更改包含标头的顺序来解决。
假设一个名为header.h
的文件具有以下内容:
LPCWSTR foo;
在you main中:
// This is fail.
#include "header.h"
#include <windows.h>
尝试:
// Success!
#include <windows.h>
#include "header.h"
https://stackoverflow.com/questions/12280333
复制相似问题