Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

19.10.2011, 16:56. Просмотров 1624. Ответов 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/library/dd389098%28v=VS.85%29.aspx
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2011, 16:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблема с компиляцией DirectShow (C++):

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

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

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

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

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

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

6
HighPredator
5560 / 1873 / 350
Регистрация: 10.12.2010
Сообщений: 5,492
Записей в блоге: 3
19.10.2011, 19:40 #2
Цитата Сообщение от al072 Посмотреть сообщение
не могу скомпилировать программу
Какие ошибки? Приведите.
0
Федор-Липецк
4 / 4 / 0
Регистрация: 15.10.2011
Сообщений: 39
19.10.2011, 19:45 #3
а зачем тебе консольный проект? бери MFC
0
HighPredator
5560 / 1873 / 350
Регистрация: 10.12.2010
Сообщений: 5,492
Записей в блоге: 3
19.10.2011, 22:34 #4
Цитата Сообщение от Федор-Липецк Посмотреть сообщение
а зачем тебе консольный проект?
У автора пример из msdn под консоль.
0
al072
15 / 15 / 0
Регистрация: 03.02.2010
Сообщений: 133
21.10.2011, 07:26  [ТС] #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
0
HighPredator
5560 / 1873 / 350
Регистрация: 10.12.2010
Сообщений: 5,492
Записей в блоге: 3
21.10.2011, 10:03 #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/library/81aef5w3(v=vs.80).aspx
0
al072
15 / 15 / 0
Регистрация: 03.02.2010
Сообщений: 133
21.10.2011, 10:13  [ТС] #7
Спасибо вечером попробую..по результатам отпишусь..
0
21.10.2011, 10:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2011, 10:13
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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