我想尝试构建DirectShow转换过滤器。
我离开编程已经有很多年了,想尝试再次尝试。
我想尝试使用DirectShow为视频流设计一个转换过滤器。
但是我无法使用旧的Visual C++ 5.0来构建任何DirectShow示例。
我想曾经可以,但是现在我已经更换了几次计算机,而且我不记得过去曾经做过什么工作。我大约在10到15年前安装了DirectX 9.0,但是我再也找不到安装文件,因此我刚刚将保存安装的dxsdk文件夹复制到了Visual C++ 5.0的新安装中。
当我尝试构建其中一个示例时,它说“\ DXSDK \ INCLUDE \ strmif.h(28):致命错误C1189:#error:此存根需要rpcndr.h的更新版本”
我不知道为什么我再也没有了。我不记得过去是否安装了Visual C++更新,其中可能包含了该更新。我只是不记得了。
我试图找到DirectX 9的安装文件,但是我在Microsoft可以得到的唯一文件是DirectX 10,它只有几年的历史,而且似乎不再包含DirectShow。而且我不知道重新安装DirectX是否还能解决过时的“rpcndr.h”问题?
我尝试安装Visual Studio 2015社区,该社区可从Microsoft获得,但安装速度似乎非常慢,从Google搜索中可以看到,人们等待一两天才能完成它并不罕见。安装!另外,它只想在编程环境中就在我的计算机上安装13 GB,而我的需求要简单得多。所以我放弃了。
我喜欢旧的Visual C++ 5.0。这就是我过去学习编程的方法,而我几乎不知道该如何解决。另外,令我感到烦恼的是,它似乎已完全能够编译和构建良好的程序,因此不再受支持。似乎没有明显的理由说明它不应该能够编译和构建DirectShow过滤器或应用程序。所以我想继续使用它,甚至制作一个DirectShow过滤器
谁能告诉我是否有办法使它起作用?
我是否需要下载某种SDK来更新 header 和库,才能获得我必须与编译器一起使用的DirectX SDK文件?
谢谢。
最佳答案
在过去的20年中,您要考虑一些重要的变化。
您可能仍会使用Visual C++ 5.0,这对我来说意义不大,但在这种情况下,您将不得不找到各自的旧版SDK。尽管存在某些问题的可能性很高,例如DEP不兼容。完全不需要进入这个旅程,但是您可以使用当前的工具。
DirectShow运行时现在是操作系统的一部分,您不需要任何可再发行文件。重要的是安装或安装Windows SDK 7.1,因为它是带有一组示例(包括DirectShow示例和DirectShow BaseClasses)附带的最新版本。您需要这些样本,否则您将不得不chase for them on GitHub或其他地方。
您将希望将具有所有最新更新和最新Windows SDK 10的Visual Studio 2015社区用作您的开发环境。转换DirectShow示例以升级相应的项目,您将能够从SDK 7.1构建DirectShow Samples,顺便说一下,它已经包括一些流行的转换过滤器项目,例如EzRGB24 Filter Sample。
关于c++ - 如何使用Visual C++ 5.0构建DirectShow筛选器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41189534/