Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
al072
15 / 15 / 0
Регистрация: 03.02.2010
Сообщений: 133
#1

Проблема с компиляцией DirectShow - C++

19.10.2011, 16:56. Просмотров 1520. Ответов 6
Метки нет (Все метки)

Столкнулся со следующей проблемой:
Начал разбирать пример консольной программы Directshow с MSDN, которая воспроизводит видео файл в формате .avi
Действовал следующим образом:
1. В Visual Studio 2010 создал консольный проект с предкомпилированным заголовком;
2. В свойствах проекта (Alt+F7), добавил заголовочный файл "DShow.h" и библиотеку "strmiids.lib" как написано на MSDN;
3. Далее возник следующий вопрос.. в исходном коде программы на MSDN весь код находиться в теле функции void main(void), а когда создается консольный проект в VS2010, то предкомпилированное тело функции имеет следующий вид int _tmain (int argc, char *argv[]). Как мне поступить в этом случае, не могу скомпилировать программу...

Вот исходный код программы, которая должна воспроизводить файл в формате .avi

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <dshow.h>
void main(void)
{
    IGraphBuilder *pGraph = NULL;
    IMediaControl *pControl = NULL;
    IMediaEvent   *pEvent = NULL;
 
    // Initialize the COM library.
    HRESULT hr = CoInitialize(NULL);
    if (FAILED(hr))
    {
        printf("ERROR - Could not initialize COM library");
        return;
    }
 
    // Create the filter graph manager and query for interfaces.
    hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                        IID_IGraphBuilder, (void **)&pGraph);
    if (FAILED(hr))
    {
        printf("ERROR - Could not create the Filter Graph Manager.");
        return;
    }
 
    hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
    hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
 
    // Build the graph. IMPORTANT: Change this string to a file on your system.
    hr = pGraph->RenderFile(L"C:\\Example.avi", NULL);
    if (SUCCEEDED(hr))
    {
        // Run the graph.
        hr = pControl->Run();
        if (SUCCEEDED(hr))
        {
            // Wait for completion.
            long evCode;
            pEvent->WaitForCompletion(INFINITE, &evCode);
 
            // Note: Do not use INFINITE in a real application, because it
            // can block indefinitely.
        }
    }
    pControl->Release();
    pEvent->Release();
    pGraph->Release();
    CoUninitialize();
}
Попробуйте скомпилировать эту программу у себя, может я что-либо не так делаю или нехватает како-то заголовочного файла? Вот ссылка на ветку: http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2011, 16:56     Проблема с компиляцией DirectShow
Посмотрите здесь:

Проблема с компиляцией - C++
Сегодня начал изучать C++ Скачал инсталлятор MinGW отсюда: ...

проблема с компиляцией - C++
уважаемые форумчане есть программы компилировал в Microsoft Visual Studio 2010 Ultimate и в Microsoft Visual Studio 2010 Express и не в...

Проблема с компиляцией (help) - C++
установил С++ 6.0 , но что то проблемный какой то jmu debug &gt; go (v otvet ) this file does not exist. yes want to build it &gt; file not...

Проблема с компиляцией Релиза на VS2010 - C++
Приветствую. У меня опять возникла не логичная ситуация. Создал проект на VS2008. Через некоторое время решил его перевести на VS2010....

Проблемы с компиляцией - C++
Фрумчане помогите ! Программа работает, но выдает ошибки при компиляции. Не могу понять что не так... Вот код. #include &lt;iostream&gt; ...

Помогите с компиляцией! - C++
Всем привет! Я решил влиться в ряды программеров (На Паскале уже могу чуть писать ) Решил учить СИ++. Куписл книгу, установил с диска...

Проблемы с компиляцией - C++
Привет, Пытаюсь скомпилировать win32 библиотеку, при компиляции возникает следующее: Error 103 error : Required file...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
5476 / 1842 / 343
Регистрация: 10.12.2010
Сообщений: 5,434
Записей в блоге: 3
19.10.2011, 19:40     Проблема с компиляцией DirectShow #2
Цитата Сообщение от al072 Посмотреть сообщение
не могу скомпилировать программу
Какие ошибки? Приведите.
Федор-Липецк
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
19.10.2011, 19:45     Проблема с компиляцией DirectShow #3
а зачем тебе консольный проект? бери MFC
HighPredator
5476 / 1842 / 343
Регистрация: 10.12.2010
Сообщений: 5,434
Записей в блоге: 3
19.10.2011, 22:34     Проблема с компиляцией DirectShow #4
Цитата Сообщение от Федор-Липецк Посмотреть сообщение
а зачем тебе консольный проект?
У автора пример из msdn под консоль.
al072
15 / 15 / 0
Регистрация: 03.02.2010
Сообщений: 133
21.10.2011, 07:26  [ТС]     Проблема с компиляцией DirectShow #5
Цитата Сообщение от Predator_2004 Посмотреть сообщение
У автора пример из msdn под консоль.
Хорошо, коды ошибок выложу..

Добавлено через 21 час 43 минуты
Цитата Сообщение от al072 Посмотреть сообщение
Хорошо, коды ошибок выложу..
При условии, что весь код, я вставляю в тело функции int _tmain(int argc, char *argv[]). Компилятор ругается на строчки (18 и 28) выдает следующие ошибки:

Ошибка 1 error C2561: wmain: функция должна возвращать значение c:\users\alex\documents\visual studio 2010\projects\play a file\play a file\play a file.cpp 19 1 play a file
Ошибка 2 error C2561: wmain: функция должна возвращать значение c:\users\alex\documents\visual studio 2010\projects\play a file\play a file\play a file.cpp 28 1 play a file
HighPredator
5476 / 1842 / 343
Регистрация: 10.12.2010
Сообщений: 5,434
Записей в блоге: 3
21.10.2011, 10:03     Проблема с компиляцией DirectShow #6
У вас главная подпрограмма объявлена в виде функции, возвращающей целочисленное значение, но, скажем здесь:
C++
1
2
3
4
5
if (FAILED(hr))
    {
        printf("ERROR - Could not create the Filter Graph Manager.");
        return;
    }
значение не возвращается. Делайте
C++
1
return 1;
для мест, где обработаны ошибки, и в конце функции
C++
1
return 0;
Добавлено через 1 минуту
Вдогонку:http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2011, 10:13     Проблема с компиляцией DirectShow
Еще ссылки по теме:

Ошибка с компиляцией - C++
Здравствуйте Уважаемые пользователи! Нужна Ваша помощь! Решил изучать C++. Скачал компилятор, прописал пути в PATH, но возникла проблема...

Просьба с компиляцией - C++
Сегодня что то случилось с компиляторами на 2 разных запускал толку... Ошыбка: error: stray '\179' in program Просьба запустить код...

Ошибка с компиляцией - C++
При компиляции любого проекта, вместо обычной консоли вылазят эти окна(скрин прикреплен), при этом каждые 20 секунд появляется новое окно....

Проблемы с компиляцией - C++
пишу простенькую прогу, переводящую число в часы, секунды и минуты. Появляется вот это: fatal error C1010: unexpected end of file while...

Работа с видео и DirectShow - C++
Готовлюсь вот поработать с ним (тащу вампиром 140М DirectX SDK 8.0, так сложилось что нет 10грв. поискать CD, не говоря уж о книге :) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
al072
15 / 15 / 0
Регистрация: 03.02.2010
Сообщений: 133
21.10.2011, 10:13  [ТС]     Проблема с компиляцией DirectShow #7
Спасибо вечером попробую..по результатам отпишусь..
Yandex
Объявления
21.10.2011, 10:13     Проблема с компиляцией DirectShow
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru