zoukankan      html  css  js  c++  java
  • Win7 vs2017 WDK 1803 1809 驱动开发 出错 KMDF

    一、编译出错,

    1. 包含头文件出错

    解决方案:

    需要下载1803 的wdk  最新的1809会出一堆错误

    安装程序显示是10.0.17134.1安装完成后是10.0.17134.0

    2. Inf2Cat Double click to see

    项目--》属性--》Info2Cat--》Run Inf2Cat  属性 是 - 置空

    3. Error:不能将"char*"类型的值分配到"LPSTR"类型的实体 或者 "char*"类型的实参与"LPCWSTR"类型的形参不兼容

     定义一个字符数组  char msg[] = "Monitoring stopped.";

    二、配置测试机出错(ConfigUration Progress)

    ERROR: Task "Installing VC Redist (x64)" failed to complete successfully

    Computer configuration log file://C:/Users/01/AppData/Roaming/Microsoft/WDKTestInfrastructure/ProvisioningLogs/Driver%20Test%20Computer%20Configuration%2020181009194105544.log

    failed to complete successfully

    解决方案:

    Win7Sp1

    三、解决VS 编译 typedef void * POINTER_64 PVOID64错误

    问题起因分析:

    打开winnt.h文件,发现问题就是在winnt.h头文件中无POINTER_64的定义造成的。搜索vc下的头文件,发现在basetsd.h头文件中有POINTER_64的定义,而在winnt.h头文件中也包含了该头文件。该问题是头文件搜索顺序引起的,由于DX SDK的头文件搜索顺序在Platform SDK之前。而在DX SDK中也有basetsd.h头文件,而该文件无POINTER_64的定义,因此编译通不过。


    解决方案:

    Solution1:

    调整IDE中头文件目录路径顺序,将Platform SDK头文件目录放在DX SDK头文件目录前。(有效

    Solution 2.
    typedef void *PVOID;
    typedef void * POINTER_64 PVOID64;
    在它之前加下:
    #define POINTER_64 __ptr64

    Solution 3.
    typedef void *PVOID;
    typedef void * POINTER_64;
    typedef void * PVOID64;

    四、无法打开预编译头文件:“Releasexxx.pch”: No such file or directory

    打开属性-》C/C++ 将【创建/使用编译头】改为“不使用编译头”,或者改成 “创建预编译头(/Yc)”, 然后编译就通过了。

    五、语法错误: 标识符 “LPDIRECT3D”

    原因:本人将 d3d.h 复制到了编译包含头文件目录(C:Program Files (x86)Windows Kits10Include10.0.17134.0um)然后又引用了自己的 Include目录

  • 相关阅读:
    2013 蓝桥杯B组C++
    Kruskal 算法 && Kruskal 重构树
    并查集与其优化(启发式合并、压缩路径)
    【2021 首祭】一周晴天
    Docker以过时,看Containerd怎样一统天下
    史上最全的Nginx配置文档
    Windows环境Android studio运行RN项目,Node突然闪退
    solr docker 配置
    腾讯2017暑期实习生编程题详解
    华为2016研发工程师编程题详解
  • 原文地址:https://www.cnblogs.com/xdot/p/9760247.html
Copyright © 2011-2022 走看看