【发布时间】:2016-12-16 17:27:11
【问题描述】:
我想尝试构建一个 DirectShow 转换过滤器。
我已经离开编程多年了,我想尝试重新开始。
我想尝试使用 DirectShow 为视频流设计一个转换过滤器。
但我无法让我的旧 Visual C++ 5.0 构建任何 DirectShow 示例。
我想我曾经可以,但现在我已经换了几次电脑,我不记得我过去做了什么让它工作。我在大约 10 到 15 年前安装了 DirectX 9.0,但我再也找不到安装文件了,所以我刚刚将保存安装的 dxsdk 文件夹复制到了新安装的 Visual C++ 5.0.
当我尝试构建其中一个示例时,它显示 "\DXSDK\INCLUDE\strmif.h(28) : fatal error C1189: #error : this stub requires an update version of rpcndr.h"
我不知道为什么我不再拥有它了。我不记得过去是否安装了可能包含它的 Visual C++ 更新。我只是不记得了。
我试图找到 DirectX 9 的安装文件,但我在 Microsoft 唯一能找到的是 DirectX 10,它只有几年的历史,并且似乎不再包括 DirectShow。而且我不知道重新安装 DirectX 是否能解决过时的“rpcndr.h”问题?
我尝试安装 Microsoft 提供的 Visual Studio 2015 社区,但它的安装速度似乎非常慢,而且从谷歌搜索看来,这对人们来说并不少见等待一两天完成安装!另外,它想在我的电脑上安装 13 GB,只是为了一个编程环境,而我的需求比这简单得多。所以我放弃了。
我喜欢我的旧 Visual C++ 5.0。这是我过去学习编程的方法,但我几乎不知道如何解决它。此外,它让我觉得它不再受支持,因为它似乎完全能够编译和构建好的程序。似乎没有明显的原因为什么它不能编译和构建 DirectShow 过滤器或应用程序。所以我想继续使用它,甚至制作一个 DirectShow 过滤器
谁能告诉我如果有办法让它工作吗?
我是否需要下载某种 SDK 来更新头文件和库,以获取我必须使用编译器的 DirectX SDK 文件?
谢谢。
【问题讨论】:
-
哇,过去的爆炸。 VC6 及更早版本以“古怪”和具有非标准 C++ 实现而闻名。听起来这可能是个问题。请记住,当 DirectX 9 出现时,VC6 已经出现了 4 年。 (就个人而言,VC6 及更早版本非常古怪,以至于您几乎学习了一种与 C++ 不同的语言,它有自己的一套规则。较新的版本更符合相关标准。)跨度>
-
是的,当标准尚未发布时,VC5 很难遵守标准。 :-) 必须查看我的 VC5 CD 才能看到上面写着“Designed for Windows 95 / Windows NT”。如果那不是你的 Windows 版本,你也应该升级编译器。
标签: c++ directshow