在使用 DirectX 编程,尤其是其中的 DirectInput 组件时,很容易葛激握颟发生 LNK2001 错误,提示“无法解析的外部符号”……甚至,就连照搬某些前两年才出版的 DirectX 参考书(不乏经典名作)中的源代码也常常会发生此类错误,导致编译失败。那么,出现这种情况时,该如何解决呢?下面,我们就以 VS2013 为例,来教大家解决的方法。
工具/原料
VS2013
一、现象描述
1、在本机上已经正确安装 DirectX SDK,并且正确配置的情况下,使用 Dire罕铞泱殳ctX 中的 Dire艘早祓胂ctInput 组件编写程序时,在编译过程中提示 "LNK2001:无法解析的外部符号……“,导致编译失败。
2、仔细检查相应的库和头文件,似乎尽数包含。
3、而且,根据出错提示,查找相应的符号时(即函数或宏定义等),却发现它们已经在源代码中定义了。
二、解决办法
1、究其原因,是由于代码中使用了预定义的GUID(全局唯一标识符)或某些宏定义,却没有链接以下库文件:dxguid.lib。
2、这时,尽管你包含了相应的头文件(这些文件中含有相关的定义信息),编译器也无法识别该 GUID 或相应的宏定义。
3、当然,只要找到原因了,解决办法也是相当简单:将以下语句加入到随便一个头文件或源文件中即可。
4、加好以后,点击菜单”生成“-”重新生成解决方案“,就可以成功编译了。