zoukankan      html  css  js  c++  java
  • VC链接hid.lib出错问题解决方案

    写一个HID的客户端小程序,调用了一些HID API,但是链接时出现了奇怪的现象。

    尽管我已经把头文件和lib文件加入到了VC的Include和Lib目录中,但不管我用VC链接,还是在DDK环境下链接,都会提示如下的错误

    1>E:WINDDK3790.1830libwneti386BufferOverflowU.lib
    1>E:WINDDK3790.1830libcrti386libc.lib
    1>E:WINDDK3790.1830libwneti386advapi32.lib
    1>E:WINDDK3790.1830libwneti386kernel32.lib
    1>E:WINDDK3790.1830libwneti386hid.lib
    1>E:WINDDK3790.1830libwneti386setupapi.lib
    1>E:WINDDK3790.1830libwneti386comdlg32.lib
    1>hidtest.obj : error LNK2019: unresolved external symbol "void __stdcall HidD_GetHidGuid(struct _GUID *)" (?HidD_GetHidGuid@@YGXPAU_GUID@@@Z) referenced in function _main
    1>objchk_wnet_x86i386HidTest.exe : fatal error LNK1120: 1 unresolved externals

    明明已经找到了hid.lib,却还是提示找不到函数,这让我很纳闷,找了好久,终于在网上找到了答案:

    https://bbs.csdn.net/topics/350115980

    问题出在头文件的包含方式上,默认我是这么写的:

    #include <windows.h>
    #include <setupapi.h>
    #include <hidsdi.h>

    而实际上得这么写:

    #include <windows.h>
    #include <setupapi.h>

    extern "C" {
    #include <hidsdi.h>
    };

    我猜测是因为这个头文件定义的符号名称是C方式的,如果是按CPP方式的话,可能是因为名称修饰的关系导致找不到对应的函数吧

    修改完成后再编译就通过啦!

  • 相关阅读:
    Hibernate常用查询
    Hibernate多对多
    Hibernate简单检索方式(查询方式)
    Hibernate入门代码
    Hibernate一对多
    什么是Hibernate
    SpirngMVC入门第一天
    Docker一键部署Hadoop心得(二)
    Docker一键部署Hadoop心得(一)
    安装Docker的三种方式
  • 原文地址:https://www.cnblogs.com/achillis/p/8619753.html
Copyright © 2011-2022 走看看