问题描述
https://github.com/roman380/tmhare.mvps.org-vcam
我看了Vivek's Virtual Camera。我无法理解如何编译和运行这个项目。
在项目中我看到两个目录
alok@LAPTOP-DG8ME7Q5:/mnt/c/Users/alokm/tmp/vcam/vcam$ tree .
.
├── Bin
│ ├── VCam.ax
│ └── VCamD.ax
└── Filters
├── Dll.cpp
├── Filters.cpp
├── Filters.def
├── Filters.dsp
└── Filters.h
2 directories,7 files
通过查看源代码中的 dll
和 .def
文件,我想我需要将此项目编译为 .dll
并使用 regsvr32.exe
注册它。
我如何构建和运行这个项目来测试虚拟相机?
解决方法
Filters
文件夹包含项目的源代码。 .DSP 是旧 Visual Studio 的项目文件(还是 Visual C++ 6.0?)。如果当前的 Visual Studio 无法转换项目文件,您应该仍然可以创建一个新的 DLL 项目文件并添加源代码文件。
您需要 DirectShow BaseClasses 来构建代码。 BaseClass 不再是 Windows 10 SDK 的一部分,因此您必须拥有 Windows 10 SDK,并且您还需要这个:
请注意,那里的 BaseClasses 比 VCam 示例本身更新鲜,并且 Visual Studio 解决方案文件已经是 .SLN,并且已知可以为当前的 Visual Studio 构建和接受(通过转换)。
您还可以在相邻文件夹中找到其他过滤器项目。
Bin
文件夹包含项目的预构建 Win32 二进制文件。不要与 .AX 扩展名混淆 - 这些文件是常规的 .DLL 文件,您可以直接针对 regsvr32 使用它们。如果您将代码构建到 .DLL 文件中,您将获得与 .AX 相同的效果。
要查看正在运行的项目,您需要一个 32 位应用程序,该应用程序可通过 DirectShow 与相机配合使用,例如:
- Windows 10 SDK GraphEdit
- AMCap 示例(其中提到的示例和 also documented on MSDN)
- GraphStudioNext
在对构建的项目进行 regsvr32 regsvr32 后,您应该会看到一个新的相机选项(来自特权提升的命令提示符!)
要让项目与 64 位应用程序一起工作,您需要先构建项目,然后 regsvr32 它。 Virtual Driver Cam not recognized by browser 问题阐明了为什么 32 和 64 构建单独工作并针对不同的应用程序。