在C中创建了一个项目,其文件是来自http://www.codeproject.com/Articles/185522/Using-the-Raw-Input-API-to-Process-Joystick-Input的RawInput.c。我编译了它,它在vs2012中完美运行。但是当我在一个新项目的cpp中粘贴相同的代码时,我得到了4个这样的错误,只是不同的decleration名称。 错误LNK2019:未解析的外部符号“long __stdcall HidP_GetCaps(struct _HIDP_PREPARSED_DATA .... 致命错误LNK1120:4个未解决的外部因素 我想这与我尝试在c ++编译器中运行c代码而不告诉它正确的方式有关。也许在某处必须有外部的“C”?我甚至不知道我是否尽力在webb上寻找解决方案。帮助将不胜感激。谢谢。
答案 0 :(得分:4)
似乎Hidsdh.h不是C ++兼容的头文件。像这样包括:
//This is not a C++ header
extern "C"
{
#include <Hidsdi.h>
}
答案 1 :(得分:2)
您可能需要添加包含HidP_GetCaps函数的库文件hidparse.lib
。右键单击解决方案资源管理器中的项目,选择“属性”,然后在“链接器”部分(输入)下将hidparse.lib添加到“其他依赖关系”中。
答案 2 :(得分:1)
为项目属性添加库路径,如下所示。
C:\ Program Files(x86)\ Windows Kits \ 10 \ Lib \ 10.0.17134.0 \ um \ x64
添加一个库“ hid.lib”文件。