В последнее время я пытаюсь активировать модуль расширения UVC (USB Video Class). Я сделал некоторый прогресс (получив vidcap_i.c от руководства от другого форума), но я не смог пройти из-за ошибок компиляции, и я надеюсь, что смогу получить помощь здесь. Я создал все необходимые файлы, которые я руководствовался образцом на сайте Microsoft, за исключением примера приложения.
Их содержание такое же, как и в образце ссылок UVC.
* Примечание: я немного запутался в строке, в которой говорится: "Скопируйте Extend.def из WIA, добавьте образец и отредактируйте его. Uvcxuplugn.def должен содержать".I надеюсь, что я правильно понял, - я скопировал файл extend.def из WDK в каталог c:\xu, отредактировал файл, добавил необходимый контент и сохранил его как файл Uvcuplugn.def.
После создания с использованием среды Build это результат компиляции:
C:\xu> Сборка -cZg
BUILD: компиляция и ссылка для AMD64
СТРОЙ: Время начала:
BUILD: проверка каталога c:\xu для компиляции файлов.
c:\xu Invalidating OACR warning log for 'root:amd64chk'
BUILD: создание сгенерированных файлов в каталоге c:\xu
Настройка OACR для "root: amd64chk" -
Запуск MIDL on - interface.idl
BUILD: компиляция каталога c:\xu
Компиляция - interface_i.c
Компиляция - vidcap_i.c
Компиляция - uvcxuplgn.cpp
1> ошибки в каталоге c:\xu
1> c:\xu\xuproxy.h(69): ошибка C2017: незаконная escape-последовательность
1> c:\xu\xuproxy.h(71): ошибка C2059: синтаксическая ошибка: '__uuidof'
1> c:\xu\xuproxy.h(71): ошибка C2017: незаконная escape-последовательность
1> c:\xu\xuproxy.h(71): ошибка C2332: 'struct': отсутствует имя тега
1> c:\xu\xuproxy.h(71): ошибка переопределения типа C2011: '': 'enum'
1> c:\xu\uvcxuplgn.cpp(7): ошибка C2143: синтаксическая ошибка: отсутствует ';' до '{'
1> c:\xu\uvcxuplgn.cpp(7): ошибка C2447: '{': отсутствует заголовок функции (формальный список старого стиля?)
1> c:\xu\uvcxuplgn.cpp(31): ошибка C2065: "ObjectMap": необъявленный идентификатор
Компиляция - stdafx.cpp
Компиляция - xuproxy.cpp
Building Library - objchk_win7_amd64\amd64\uvcxuplgn.lib
1> ссылка: ошибка LNK1181: невозможно открыть входной файл 'c:\xu\objchk_win7_amd64\amd64\uv cxuplgn.obj'
BUILD: Скомпилировать ошибки: не связывать каталог c:\xu
BUILD: Время окончания:
СТРОИТЬ: Готово
12 files compiled - 1 Warning - 8 Errors
1 library built - 1 Error
Я получаю те же ошибки, независимо от цели (x86, x64, ia64)
Теперь давайте рассмотрим ошибки один за другим, начиная с последнего:
LNK1181-> Не знаю об этой ошибке. Я сделал очистку сборки, и это не помогло
на всех. Но это, вероятно, самая простая ошибка для решения, надеюсь, что вы сможете мне дать
руководство по этому вопросу.
uvcxuplgn.cpp, строка 7, проблематичный синтаксис: BEGIN_OBJECT_MAP (ObjectMap).
Согласно документации Microsoft (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)
Опять же, не знаю, почему он не должен компилироваться. Надеюсь, что я смогу немного поучаствовать в этом вопросе. Извините за длинный пост, надеюсь, что вы могли бы помочь мне (и, вероятно, многим другим), которые борются с этим объектом расширения UVQ UVQ
Во-первых, вы всегда должны смотреть на первую ошибку, которая происходит. Остальные часто следуют за ошибками. Поэтому просто удалите неправильную escape-последовательность() в строке 69 и в строке 71 в xuproxy.h.
Ошибка связывания происходит только потому, что компилятор ранее не мог скомпилировать файлы.cpp, поэтому отсутствует объектный файл.