Microsoft Windows UVC扩展单元示例编译故障排除

Microsoft Windows UVC Extension Unit sample compilation troubleshooting

本文关键字:编译 故障 排除 单元 Windows UVC 扩展 Microsoft      更新时间:2023-10-16

我最近一直在尝试让UVC (USB视频类)扩展单元启动和运行。我确实取得了一些进展(通过从另一个论坛的消息中获得vidcap_i.c),但由于编译错误,我无法通过,我希望我能在这里得到一些帮助。我已经创建了所有必要的文件,这些文件是由Microsoft站点的示例指导的,除了示例应用程序。

其内容与UVC示例链接相同。

*注意:我有点困惑的行,说"复制扩展。def从WIA扩展样本和编辑它。uvcxuplugin .def应该包含"。我希望我得到了正确的-我已经复制了扩展.def文件从WDK样本目录到c:xu目录,编辑文件,添加必要的内容,保存为Uvcuplugn.def文件。

在使用Build环境进行构建之后,以下是编译的输出:

C: 徐>构建-cZg

BUILD:编译和链接AMD64

BUILD: Start time:

BUILD: checking c:xu目录for files to compile.

c:xu Invalidating OACR warning log for 'root:amd64chk'

BUILD:在c:xu目录下构建生成的文件

为'root:amd64chk'配置OACR -

在- interface.idl上运行MIDL

编译c:xu目录

编译- interface_i.c

编译- vidcap_i.c

编译- uvcxuplgn.cpp

1>目录c:xu

1>c:xuxuproxy.h(69): error C2017:非法转义序列

1>c:xuxuproxy.h(71):错误C2059:语法错误:'__uuidof'

1>c:xuxuproxy.h(71): error C2017:非法转义序列

1>c:xuxuproxy.h(71):错误C2332: 'struct':缺少标签名称

1>c:xuxuproxy.h(71):错误C2011: ": 'enum'类型重新定义

1>c:xuuvcxuplgn.cpp(7):错误C2143:语法错误:在"{"之前缺少";"

1>c:xuuvcxuplgn.cpp(7):错误C2447: '{':缺少函数头(旧类型)正式名单?)

1>c:xuuvcxuplgn.cpp(31):错误C2065: 'ObjectMap':未声明的标识符

编译- stdafx.cpp

编译- xuproxy.cpp

构建库- objchk_win7_amd64amd64uvcxuplgn.lib

1>链接:错误LNK1181:无法打开输入文件'c:xuobjchk_win7_amd64amd64uvcxuplgn.obj '

BUILD:编译错误:没有链接c:xu目录

BUILD: Finish time:

构建:完成

12 files compiled - 1 Warning - 8 Errors
1 library built - 1 Error

无论目标是什么(x86,x64,ia64)我都会得到相同的错误

现在,让我们一个一个地复习错误,从最后一个开始:

LNK1181->不知道这个错误。我已经完成了构建的清理,但没有帮助

。但这可能是最容易解决的错误,希望你能给我

这个主题的引子。

uvcxuplgn.cpp,第7行,有问题的语法是:BEGIN_OBJECT_MAP(ObjectMap)。

根据微软的文档(http://msdn.microsoft.com/en-us/library/10fb0d3e(v=vs.90).aspx),这个指令是在atlcom.h中定义的在文件中,所以我真的很困惑这个错误的原因。

最后一个错误与扩展单元代理头文件的最后5行有关(由于错误不能在这里发布代码-检查此页面(http://msdn.microsoft.com/en-us/library/windows/hardware/ff568134(v=vs.85).aspx)

还是那句话,不知道为什么不能编译。希望我能找到一些线索很抱歉写了这么长一篇文章,希望你能帮助我(可能还有许多其他人),他们正在挣扎于这个Windows UVC扩展单元主题

首先,您必须查看发生的第一个错误。其他人经常跟随错误。因此,只需删除xxuproxy .h中69行和71行中错误的转义序列()。

链接错误只会发生,因为编译器不能早先编译。cpp文件,所以丢失了目标文件。