新近编程要vc9 (Visual Studio 2008)用到usb摄像头,在编译direct show基础库的时候,遇到如下的错误提示:
:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
其中C4430好解决,这只是vc6向vc9移植时的一般问题。比较难办的是c2146.
有一种办法是说调整编译器配置选项中的头文件顺序,如
Before I have (he don't works)
C:\DXSDK\Include
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(VCInstallDir)PlatformSDK\include
$(FrameworkSDKDir)include
Now i solve the problem with the order of directx SDK
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(VCInstallDir)PlatformSDK\include
$(FrameworkSDKDir)include
C:\DXSDK\Include
good luck
但上面的办法在某些项目中解决不了,比如dshow自动的示例。下面给出产生这个问题的原因和解决办法。
原因:
DirectX Include目录下面包含了一个叫BaseTsd.h的过期的头文件,它并没有定义类型 ,我们可以命名用Platform SDK的头文件来代替它。
解决办法:
非常简单,把 DirectX Include中的BaseTsd.h删除即可。这样做的优点是,不用再来回调整头文件的顺序了。
分享到:
相关推荐
Direct Show的特性使其成为开发数字视频和电视应用程序的理想选择。 ### 直播与录制:Direct Show的核心功能 Direct Show设计的核心思想是基于图的架构,将媒体处理流程视为一个由多个节点(称为过滤器)组成的...
另外,日志记录和错误处理也是解决Direct Show问题的关键。 9. **兼容性与性能优化**:Direct Show支持多种硬件和软件平台,但要注意设备驱动的兼容性和性能优化,确保在不同系统环境下都能稳定运行。 总之,...
在开发Direct3D应用程序时,调试是至关重要的环节,它能帮助我们找出并解决程序中的错误。本节我们将深入探讨如何调试Direct3D应用程序,特别是使用HR宏进行错误检查。 HR宏是专为Direct3D应用程序设计的一个实用...
在这个示例中,我们看到的是一个简单的Direct Show程序,它将MP3文件解码为WAV格式。 首先,程序包含了必要的头文件,如`atlbase.h`和`dshow.h`,并链接了`strmiids.lib`库,这是Direct Show编程的基础。`CComInit`...
这个开发入门书籍资料大全显然是为想要深入理解和开发Direct Show应用的IT专业人员准备的。以下是对Direct Show及其相关知识点的详细介绍: Direct Show是微软Windows平台上的一个API(应用程序接口),它允许...
这个压缩包包含了一系列的中文文档和教程,旨在帮助开发者深入理解和应用Direct Show进行多媒体应用程序的开发。以下是这些资源中涉及的重要知识点: 1. **DirectShow基础知识**:DirectShow是Windows平台上的一个...
在创建一个 DirectDraw 应用程序时,首先要进行的是初始化 DirectDraw。这通常包括以下几个步骤: 1. **创建 DirectDraw 实例**:首先,我们需要通过调用 `DirectDrawCreate` 函数来创建一个 DirectDraw 对象。这个...
总的来说,Direct Show是一个强大的多媒体开发工具,对于需要处理视频和音频的应用程序开发者来说,理解和掌握Direct Show的知识是至关重要的。通过深入学习Direct Show,开发者可以构建出高效、功能丰富的多媒体...
Direct Show Media Player是一种基于Microsoft DirectShow技术的媒体播放器实现。DirectShow是Windows平台上一个强大的多媒体框架,用于处理音频和视频流。它提供了一个统一的API,使得开发者能够轻松地创建能够播放...
DirectSound录音程序是一种基于Microsoft DirectSound API开发的应用,主要用于实现计算机的声音录制功能。DirectSound是Windows平台上一个重要的音频处理库,它为游戏开发者和多媒体应用提供了低延迟、高性能的音频...
Direct Show SDK是微软提供的一套用于开发多媒体应用程序的接口和工具,主要应用于DirectX 9.0b框架中。这个SDK允许开发者创建处理音频和视频流的应用程序,涵盖了播放、捕获、编辑等多个方面,广泛应用于媒体播放器...
DirectSound是微软Windows操作系统中内置的一个音频处理API,主要用于游戏和其他多媒体应用程序的音频输出。它提供了低延迟的声音处理能力,让开发者能够直接控制声音硬件,从而实现更高效、更精细的音频控制。在这...
标题中的“wav.rar_audio capture_direct audio_direct show filter_direct wav”暗示了这个压缩包可能包含一个或多个关于使用Direct Show框架捕获WAV音频文件的资源。Direct Show是Microsoft开发的一个强大的多媒体...
3. **过滤图**:Direct Show应用的核心是过滤图(Filter Graph),它是一个逻辑上的连接,由多个过滤器和它们之间的连接点组成,表示了数据从源到目的地的完整路径。 4. **视频源码**:在Direct Show中,"视频源码...
对于MPEG4这种常见的编码格式,Direct Show通常包含对应的解码器滤镜,使得程序能够解析并播放此类文件。 源码的简洁性意味着它可能是一个相对简单的实现,旨在展示如何在Direct Show框架下创建一个基本的播放器。...
Direct3D是微软开发的一个图形应用程序接口(API),主要用于创建高性能的三维图形和动画,广泛应用于游戏开发、专业可视化和虚拟现实等领域。本章节“精通Direct3D图形与动画程序设计 02_第二章 Direct3D程序设计...
这是程序的入口点,通常包括设置应用程序实例,初始化Direct2D环境,创建窗口,注册消息处理函数,以及程序的主消息循环。 4. **FreeType01.vcxproj.filters** 和 **FreeType01.vcxproj**: 这些是Visual Studio...
总结起来,Direct Show USB 抓拍涉及的主要知识点包括:Direct Show框架的理解与应用、USB摄像头的驱动模型、C#中调用Direct Show的库及接口、构建和管理过滤器图、以及视频帧的抓取和处理。掌握这些知识后,你就能...