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

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

Войти
Регистрация
Восстановить пароль
 
AndrewVladimir
2 / 2 / 0
Регистрация: 27.07.2010
Сообщений: 74
#1

Программа с параметрами - C++

21.12.2011, 15:12. Просмотров 667. Ответов 4
Метки нет (Все метки)

Как сделать так, чтобы при задании моей программе параметра, типа file.avi, запускал этот файл?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 15:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа с параметрами (C++):

Программа осуществляющая вызов функции несколько раз с различными параметрами - C++
Даны действительные числа s,t. Получить g(1.2s)+g(2s-1,st), где g(a,b)=\frac{{a}^{2}+{b}^{2}-4*a*b}{{a}^{2}+5*a*b+3*{b}^{2}+4*a-b} ...

Программа стала работать некорректно при добавлении конструктора с параметрами - C++
Есть задача заюзать конструктор с параметрами (см. в самом начале кода) (до его введения все работало, и сейчас в общем-то работает, но в...

Конструктор с параметрами - C++
Доброе время суток! Суть вопроса вот в чем: Есть класс Game, в котором создаю объект с параметрами. Параметры я пытаюсь передать...

Конструктор с параметрами - C++
Забыл как выводить конструктор с параметрами, пробую так не выходит. #include <iostream> using namespace std; class Thread{ ...

Шаблон с 4-мя параметрами - C++
Добрый вечер. Подскажите как мне сделать шаблонную функцию с четырьмя параметрами. Т.е. должна быть функция в которой первый параметр...

Функции с параметрами - C++
Здравствуйте. Поясните, пожалуйста, про передачу параметров по указателю, ссылкам и значению. Непростая тема для меня, запутанная, сразу...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
21.12.2011, 15:32 #2
еще раз и конкретнее на этот раз? какой параметр? при запуске типо?
0
AndrewVladimir
2 / 2 / 0
Регистрация: 27.07.2010
Сообщений: 74
21.12.2011, 15:39  [ТС] #3
ну да
0
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
21.12.2011, 15:44 #4
есть такая фенька - int main ( int argc, char** argv ) {}

argс[0] argv[0] - всегда имя программы
ну а далее - возможные параметры.

типо, если запустить /prog/myprogramm my_movie_1.avi
то
argv[1] = "my_movie_1.avi"
ну и от этого отталкиваясь что то сделать свое
0
AndrewVladimir
2 / 2 / 0
Регистрация: 27.07.2010
Сообщений: 74
21.12.2011, 18:17  [ТС] #5
Вот код:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#include "Defines.h"
 
IDirect3D9 * pD3D9 = Direct3DCreate9(D3D_SDK_VERSION);
IDirect3DDevice9 * Device = 0;
D3DPRESENT_PARAMETERS d3dpp = {0};
 
float xSc = 1.0f, ySc = 1.0f;
 
BINK * Bink = 0;
BINKTEXTURESET TexSet = {0};
 
void Render();
bool InitBink(HWND hWnd);
void Decompress_Frame(BINKTEXTURESET * ts);
 
LRESULT CALLBACK WndProc(HWND h, UINT m, WPARAM w, LPARAM l)
{
    switch(m)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    case MSG_ERROR_REGCLASS:
        msg_show("Ошибка создания класса", "Ошибка");
        PostQuitMessage(0);
        break;
    case MSG_ERROR_CREATEWINDOW:
        msg_show("Ошибка создания окна", "Ошибка");
        PostQuitMessage(0);
        break;
    case MSG_ERROR_CREATE3D:
        msg_show("Ошибка создания Direct3D", "Ошибка");
        PostQuitMessage(0);
        break;
    case MSG_RENDER:
        Render();
    }
 
    return DefWindowProc(h, m, w, l);
}
 
bool InitBink(HWND hWnd)
{
    BinkSoundUseDirectSound(0);
 
    Bink = BinkOpen("Intro.bik", BINKSNDTRACK|BINKNOFRAMEBUFFERS);
    if(!Bink)
        return false;
 
 
 
    xSc = GetSystemMetrics(SM_CXSCREEN) / (float)Bink->Width;
    ySc = GetSystemMetrics(SM_CYSCREEN) / (float)Bink->Height;
 
    if(Create_Bink_shaders(Device))
    {
        BinkGetFrameBuffersInfo(Bink, &TexSet.bink_buffers);
    }
    else
        {
            msg_show("Ошибка создания шейдеров", "Ошибка");
            PostQuitMessage(0);
            return false;
        }
 
    ShowCursor(false);
 
    return true;
}
 
void Decompress_Frame(BINKTEXTURESET * ts)
{
    Lock_Bink_textures(ts);
    BinkRegisterFrameBuffers(Bink, &ts->bink_buffers);
    BinkDoFrame(Bink);
    while(BinkShouldSkip(Bink))
    {
        BinkNextFrame(Bink);
        BinkDoFrame(Bink);
    }
    Unlock_Bink_textures(Device, ts, Bink);
    BinkNextFrame(Bink);
}
 
bool Init3D(HWND hWnd)
{
    ZeroMemory(&d3dpp, sizeof d3dpp);
    d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
    d3dpp.BackBufferCount = 1;
    d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
    d3dpp.BackBufferWidth = GetSystemMetrics(SM_CXSCREEN);
    d3dpp.BackBufferHeight = GetSystemMetrics(SM_CYSCREEN);
    d3dpp.EnableAutoDepthStencil = true;
    d3dpp.SwapEffect = D3DSWAPEFFECT_FLIP;
    d3dpp.Windowed = false;
 
    if(FAILED(pD3D9->CreateDevice(0, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &Device)))
        SendMessage(hWnd, MSG_ERROR_CREATE3D, 0, 0);
 
    return true;
}
 
void Render()
{
    Device->Clear(0, 0, D3DCLEAR_ZBUFFER|D3DCLEAR_TARGET|D3DCLEAR_STENCIL, D3DCOLOR_XRGB(0, 1, 0), 1.0f, 0);
    Device->BeginScene();
    if(Bink->FrameNum != Bink->Frames)
        Draw_Bink_textures(Device, &TexSet, Bink->Width, Bink->Height, 0, 0, xSc, ySc, 1.0f, 0 );
    else
    {
        BinkPause(Bink, 1);
        BinkClose(Bink);
        PostQuitMessage(0);
    }
    Device->EndScene();
    Device->Present(0, 0, 0, 0);
}
 
bool Init(HWND hWnd)
{
    Init3D(hWnd);
    if(!InitBink(hWnd))
    {
        msg_show("", "");
        PostQuitMessage(0);
        return false;
    }
 
    return true;
}
 
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
    MSG msg;
    HWND hWnd;
    WNDCLASSEX wcex;
 
    ZeroMemory(&wcex, sizeof(wcex));
    wcex.cbClsExtra = 0;
    wcex.cbSize = sizeof(wcex);
    wcex.cbWndExtra = 0;
    wcex.hbrBackground = 0;
    wcex.hCursor = 0;
    wcex.hIcon = 0;
    wcex.hIconSm = 0;
    wcex.hInstance = hInst;
    wcex.lpfnWndProc = (WNDPROC)WndProc;
    wcex.lpszClassName = "bink";
    wcex.lpszMenuName = 0;
    wcex.style = CS_CLASSDC;
    
    if(!RegisterClassEx(&wcex))
        SendMessage(hWnd, MSG_ERROR_REGCLASS, 0, 0);
 
    hWnd = CreateWindow("bink", "bink", WS_SYSMENU|WS_CAPTION, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), 0, 0, hInst, 0);
    if(!hWnd)
        SendMessage(hWnd, MSG_ERROR_CREATEWINDOW, 0, 0);
    ShowWindow(hWnd, 1);
    UpdateWindow(hWnd);
 
    if(Init(hWnd))
    {
        if(Create_Bink_textures(Device, &TexSet))
        {
            while(true)
            {
                if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
                {
                    TranslateMessage(&msg);
                    DispatchMessage(&msg);
                    if(msg.message == WM_QUIT)
                        break;
                }
                else
                {
                    if(!BinkWait(Bink))
                    {
                        Decompress_Frame(&TexSet);
                        SendMessage(hWnd, MSG_RENDER, 0, 0);
                    }
                    else
                        Sleep(1);
                }
            }
        }
    }
 
    return 0;
}
Что и куда надо все вставить? Вместо "Intro.bik" нужно вставить параметр к запускаемой программе
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2011, 18:17
Привет! Вот еще темы с ответами:

Конструктор с параметрами - C++
Не получается конструктор с параметром.. помогите пожалуйста! вот весь класс, нужно чтобы можно было в main писать вот так например: ...

Переписать с формальными параметрами - C++
Вводится последовательность из N целых чисел. Для каждого числа последовательности вывести новое число, которое состоит только из четных ...

Запуск .exe с параметрами? - C++
как реализовать на С++ следующее: запускать приложение с параметрами и выполнять при получении нужного параметра нужную функцию?

Не могу разобраться с параметрами - C++
Не могу понять смысл параметров, где почитаешь, все описано так, будто я с 5 лет пишу на с++. Для примера моя функция возводящая в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.12.2011, 18:17
Ответ Создать тему
Опции темы

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