首页 > 解决方案 > 如何在 Windows 10 上构建和运行 Vivek 的虚拟摄像头?

问题描述

https://github.com/roman380/tmhare.mvps.org-vcam

我看了Vivek 的虚拟相机。我不明白如何编译和运行这个项目。
在项目中,我看到两个目录

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.
如何构建和运行这个项目来测试虚拟相机?

标签: c++windows-10visual-studio-2019directshowdevice-driver

解决方案


Filters文件夹包含项目的源代码。.DSP 是旧 Visual Studio 的项目文件(还是 Visual C++ 6.0?)。如果当前 Visual Studio 无法转换项目文件,您应该仍然能够创建新的 DLL 项目文件并添加源代码文件。

您需要 DirectShow BaseClasses 来构建代码。BaseClasses 不再是 Windows 10 SDK 的一部分,因此您必须拥有 Windows 10 SDK,并且您还需要:

请注意,BaseClasses 比 VCam 示例本身更新鲜,Visual Studio 解决方案文件已经是 .SLN,并且已知对于当前的 Visual Studio 是可构建和可接受的(通过转换)。

您还可以在相邻文件夹中找到其他过滤器项目。

Bin文件夹包含项目的预构建 Win32 二进制文件。不要与 .AX 扩展名混淆 - 这些文件是常规的 .DLL 文件,您可以直接针对 regsvr32 使用它们。如果您将代码构建到 .DLL 文件中,您将获得与使用 .AX 相同的效果。

要查看实际运行的项目,您需要一个通过 DirectShow 与相机配合使用的 32 位应用程序,例如:

regsvr32 构建项目后,您应该会看到一个新的相机选项(来自特权提升的命令提示符!)

要让项目与 64 位应用程序一起工作,您需要先构建项目,然后再对其进行 regsvr32。浏览器无法识别的虚拟驱动程序凸轮问题阐明了为什么 32 和 64 版本分别工作并针对不同的应用程序。


推荐阅读