我正在尝试将wwise集成到一个测试项目中。我在windows 7上有一个使用2010的项目,这是我尝试在项目中添加一个额外的cpp后得到的错误。我在家里的机器上没有这个安装错误,这是什么意思?
------ Build started: Project: wwise test, Configuration: Debug Win32 ------
AkFilePackageLUT.cpp
c:\program files (x86)\audiokinetic\wwise v2012.2.1 build 4427\sdk\samples\soundengine\common\akfilepackagelut.h(204): error C2065: 'NULL' : undeclared identifier
c:\program files (x86)\audiokinetic\wwise v2012.2.1 build 4427\sdk\samples\soundengine\common\akfilepackagelut.cpp(117) : see reference to function template instantiation 'const CAkFilePackageLUT::AkFileEntry<T_FILEID> *CAkFilePackageLUT::LookupFile<AkFileID>(T_FILEID,const CAkFilePackageLUT::FileLUT<T_FILEID> *,bool)' being compiled
with
[
T_FILEID=AkFileID
]
c:\program files (x86)\audiokinetic\wwise v2012.2.1 build 4427\sdk\samples\soundengine\common\akfilepackagelut.h(204): error C2065: 'NULL' : undeclared identifier
c:\program files (x86)\audiokinetic\wwise v2012.2.1 build 4427\sdk\samples\soundengine\common\akfilepackagelut.cpp(140) : see reference to function template instantiation 'const CAkFilePackageLUT::AkFileEntry<T_FILEID> *CAkFilePackageLUT::LookupFile<AkUInt64>(T_FILEID,const CAkFilePackageLUT::FileLUT<T_FILEID> *,bool)' being compiled
with
[
T_FILEID=AkUInt64
]发布于 2012-11-28 09:40:18
在我看来,乍一看,它似乎没有指定模板参数。
其他可能的原因:
发布于 2012-11-28 10:22:41
此错误消息如下所示:
在<path...>\akfilepackagelut.h中有一个函数模板的定义。实际上,它是类的模板化方法。在该定义中,在第204行中,使用了名称NULL。NULL是在C标准库的标头<cstddef>中定义的,通常可以通过包含大量C/C++标头中的一个来包含该定义,因为它们中的大多数都包含<cstddef>。但是,akfilepackagelut.h似乎只包含在您使用的VS2012安装中不包含该定义的标题,因此编译器不知道NULL意味着什么。
其余的错误消息只是模板错误的胡言乱语,告诉您我们正在讨论的函数模板在AkFilePackageLUT.cpp中已经被实例化了两次,告诉您确切的位置和模板参数等等。
你能做什么?如果你不能像你说的那样修改源(为什么?您有源代码)您不能做任何事情,但可能会为该项目提交一个bug。如果可以修改,最好在#include <cstddef>中使用akfilepackagelut.h。
https://stackoverflow.com/questions/13601882
复制相似问题