zoukankan      html  css  js  c++  java
  • DIRECTSHOW在VS2005中PVOID64问题和配置问题

    上次开发DirectShow还是2005年1月,整整两年,今天又重操旧业。
    这次在VS2005上使用DirectShow,首次编译发现出现以下错误:
    error C2146: syntax error : missing ';' before identifier 'PVOID64'

    看了很多关于这个问题的讨论,解答,无非就是改写winnt.h中的代码:
    原代码:

    typedef   void   *PVOID;   
    typedef   
    void   *POINTER_64   PVOID64;

    在这两行代码前增加:

    #define   POINTER_64   __ptr64

    但这明显是下下之策,而且真正原因没人说的清楚。

    看到一位xd,给了一种解释,是比较正确的, 如下:
    POINTER_64是一个宏,在64位编译下起作用,它包含在SDK目录下的BASETSD.H中(Microsoft Visual Studio 8\VC\PlatformSDK\Include\basetsd.h(23):#define POINTER_64 __ptr64),但DXSDK自己也带了一个basetsd.h,里面没有定义POINTER_64,从而导致出错。
    方法1:
    在Tools -> Options -> Projects and Solutions -> VC++ Directories -> Include Files里确保系统包含目录(以S打头的)在最前面,同时在 project properties下面的“C/C++ -> General”中确保“Additional Include Directories”为空(因为它会被优先编译,这样就轮不到VC\PlatformSDK\Include\basetsd.h),所有的包含目录都应该在上面的include里面。这种方法不用改代码。
    方法2:
    在DXSDK自己的basetsd.h里自己定义#define POINTER_64 __ptr64
    Trackback:http://hi.baidu.com/maxgoto/blog/item/fc40a86e8ec1f3da81cb4aff.html

    PVOID64问题解决后,还要对VS2005进行配置:
    先把dxsdk中提供的baseclass编译通过,用四种方式编译,会分别生成四个lib,一般只用到了其中的Debug和Release文件,
    在tool|option|vc++ directories中包含的files中设置如下。
    这里需要加入得include files有三种:
    D:\SDK\DXSDK\Include
    D:\SDK\DXSDK\Samples\C++\DirectShow\BaseClasses
    D:\SDK\DXSDK\Samples\C++\Common\Include

    在后边的library files中也需要增加三到四种的文件:
    D:\SDK\DXSDK\Lib
    D:\SDK\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug
    D:\SDK\DXSDK\Samples\C++\DirectShow\BaseClasses\Release

    把以上设置好,需注意调整include file的位置,一般让platformSDK\Include位于DXSDK\Include后面,
    基本就可以将DirectShow程序在vs2005环境中编译通过。

  • 相关阅读:
    Asp.net 动态添加Meta标签
    【转】在SharePoint Server 2010中更改“我的网站”
    SPQuery DateTime 类型查询
    Asp.net Web Application 打开 SharePoint 2010 Site 错误 The Web application at could not be found
    How To Create SharePoint 2010 Site Collection In Its Own DB
    C# 文件打印
    面试题 java集合
    《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
    《深入理解Java虚拟机》(五)JVM调优
    《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
  • 原文地址:https://www.cnblogs.com/mfryf/p/2349456.html
Copyright © 2011-2022 走看看