none
Как запустить старый проект в Visual Studio 2013 Windows 7 RRS feed

  • Вопрос

  • Открываю пример для DirectShow (одна папка, есть файл проекта, solution, cpp и что-то ещё). Visual Studio 2013 переделывает проект и solution, а также создаёт папки (Debug, Release, Backup... Насколько я понял, это особенность Windows 7). Попытка Build заканчивается сообщением об ошибке (пути у проекта и компоновщика не совпадают; вижу - появляется фрагмент пути ".\"). Самих путей в Visual Studio очень много (типа $(OutDir)). Как проще всего настроить пути и запустить старый пример?

    Я новичок в Visual Studio и C++, до этого программировал только на Delphi. Создать новый проект получалось, а вот запустить готовый (пример DirectShow) - нет.

    29 июля 2014 г. 10:14

Ответы

  • В свойствах проекта "Компоновщик - Ввод - Дополнительные зависимости" вместо указанного выше пути:

    "c:/DXSDK/samples/C++/DirectShow/BaseClasses/Debug/strmbasd.lib"

     укажите библиотеку "Strmiids.lib" из состава Windows SDK. Зависимость будет "удовлетворена" и проект соберется.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа SkuAlex 4 августа 2014 г. 5:45
    30 июля 2014 г. 18:26

Все ответы

  • Насколько я понял, это особенность Windows 7).

    Windows 7 ни причем. Debug и Release - папки для выходных файлов компилятора и редактора связей, в Backup сохраняются старые файлы проекта и решения. Скорее всего, проект зависит еще от каких-либо внешних библиотек, которых у Вас нет (либо они находятся в другом месте). Выложите куда-нибудь изначальный проект - скажу точнее.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    29 июля 2014 г. 10:32
  • Вот ссылка (это пример из книги Pesce)

    http://www.webfile.ru/7a6b224ebf335495df09b32646dd6840



    • Изменено SkuAlex 29 июля 2014 г. 11:49
    29 июля 2014 г. 11:49
  • В проекте есть зависимость от библиотеки

    "c:/DXSDK/samples/C++/DirectShow/BaseClasses/Debug/strmbasd.lib"

    Таким образом, если Вы хотите собрать этот проект, нужно установить DirectX SDK. Если не хотите менять настройки проекта, установите SDK в тот же каталог (C:\DXSDK). Кроме того, Вам будет необходимо предварительно собрать проект из состава DirectX SDK из папки

    "c:/DXSDK/samples/C++/DirectShow/BaseClasses"


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Предложено в качестве ответа YatajgaModerator 30 июля 2014 г. 5:51
    29 июля 2014 г. 20:04
  • Да, я тоже увидел эту зависимость. Установил DirectX SDK с диска (приложение к книге). Дело в том, что раньше DirectShow входило в DirectX SDK (как в этом примере), но сейчас оно входит в Windows SDK. Поэтому я установил ранее Windows SDK, которую предлагал Microsoft, но оказалось, что это для Windows 8, и когда я установил после этого Visual Studio, то она выдавала ошибки невозможности определить версии (build для новых проектов вообще не получалось). После этого я установил (нашёл в архиве) Windows 7 SDK (сидит где-то в Program Files).

    Итак, теперь у меня куча DirectShow\BaseClasses. Со старой версией теперь сообщения о синтаксических ошибках в файле winnt.h. Буду разбираться.

    30 июля 2014 г. 16:09
  • В свойствах проекта "Компоновщик - Ввод - Дополнительные зависимости" вместо указанного выше пути:

    "c:/DXSDK/samples/C++/DirectShow/BaseClasses/Debug/strmbasd.lib"

     укажите библиотеку "Strmiids.lib" из состава Windows SDK. Зависимость будет "удовлетворена" и проект соберется.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа SkuAlex 4 августа 2014 г. 5:45
    30 июля 2014 г. 18:26
  • Из пяти наборов SDK на третьем компиляция Debug прошла. Пришлось менять пути.

    В сборке Release неожиданно появились старые пути и опять их пришлось менять. Также почему-то поменялось имя выходного файла (и это исправил).

    Наконец, оказалось, что в проекте DSRender идёт запись в корень диска C, а это получилось только после запуска программы от имени администрации.

    Всё. Тема закрыта, продолжу осваивать другие примеры.

    4 августа 2014 г. 5:50
  • Указанная мной библиотека входит в состав WinSDK, который ставится вместе с VS, дополнительно ничего не требуется. И второе, конфигурации Release и Debug независимые, изменение настроек в одной не влияет на другую.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    4 августа 2014 г. 6:49