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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
kimirius
0 / 0 / 0
Регистрация: 09.09.2012
Сообщений: 16
#1

Open GL, не запускаются приложения с его использованием - C++

30.04.2013, 22:13. Просмотров 1372. Ответов 28
Метки нет (Все метки)

Пишу на Visual C++ 2010, если написать совсем простенькую программку с использование open GL то работает нормально, но а если чуть посложнее, то из самой среды, после компиляции, запускается и работает нормально. А если ЭТОТ ЖЕ, только что скомпилированый *.exe, запустить просто кликнув на него то он работает первые секунд 5 нормально, потом окно open GL зависает. Не знаю что с этим можно поделать, пробовал несколько версий Visual Studio, а то вдруг с ним что не так. Все файлы *.dll *.lib для работы с open GL закинуты кода надо, все библиотеки и заголовочные файлы указаны в самом коде. ведь оно работает при запуске внутри среды. Подскажите пожалуйста...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2013, 22:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Open GL, не запускаются приложения с его использованием (C++):

не запускаются приложения на платформе DOS - C++
Операционка Windows XP SP 3. При компиляции файла ошибок никаких не выдает. При запуске программы высвечивается черный экран и сразу же...

Visual Studio, приложения не запускаются - C++
Есть одна проблема. Я раньше творил с CodeBlocks, а теперь решил попробовать в Visual Studio. Но ни одна моя прога не запускается пишет...

В Microsoft Visual Studio Express 2012 не запускаются консольные приложения - C++
Отказывается запускать программы на С++. К примеру "Hello World"

Не запускаются приложения - Удаление вирусов
Собственно, новая винда, не поставил антивирус, погрешил и теперь не открываются приложения. При чем в первые несколько секунд после старта...

Не запускаются приложения - Удаление вирусов
После установки обновления на винду не открывается ни одно приложение. При попытки запуска ярлыка,документа,архива,программы выскакивает...

не запускаются приложения - Удаление вирусов
Здравствуйте. Проблема такая - при запуске некоторых приложений просто ничего не происходит, не выдается ни какая ошибка, только песочные...

28
-=ЮрА=-
Заблокирован
Автор FAQ
30.04.2013, 23:59 #2
kimirius, конфигурация проекта при сборке какая Debug или Release?
0
kimirius
0 / 0 / 0
Регистрация: 09.09.2012
Сообщений: 16
01.05.2013, 20:39  [ТС] #3
Debug-многопоточная отладка (/MTd)
Releade-многопоточная (/MT)

Добавлено через 10 минут
активная - Releade
0
-=ЮрА=-
Заблокирован
Автор FAQ
01.05.2013, 21:15 #4
kimirius, хорошо проект вроди верно собирается,наверное надо смотреть код. Ты по урокам NеНе делал?
0
kimirius
0 / 0 / 0
Регистрация: 09.09.2012
Сообщений: 16
01.05.2013, 21:29  [ТС] #5
каким урокам?

Добавлено через 2 минуты
Все дело в том что она полностью нормально комплится и запускается, все отменно работает, но как только я этот же только что скомпилиный файлик запускаю вне визуал си, то он работает только первые несколько секунд, потом окно open GL зависает и не отвечает не на что

Добавлено через 1 минуту
не вылетает, и не выдает не каких ошибок... и на других компах этот файл так же себя ведет или вообще не запускается, и не говорит что библиотек не хватает или еще чего
0
-=ЮрА=-
Заблокирован
Автор FAQ
01.05.2013, 21:38 #6
kimirius, уроки можешь нагуглить.На счёт вылета-где то утёчка памяти
0
kimirius
0 / 0 / 0
Регистрация: 09.09.2012
Сообщений: 16
02.05.2013, 07:32  [ТС] #7
А проблема может быть в том что я не написал
using namespace std; ?
Это вроде как разрешение системе резервировать память под переменные используемые в этой программе, как то так или...?

Добавлено через 8 часов 54 минуты
блин...не помогло
0
-=ЮрА=-
Заблокирован
Автор FAQ
02.05.2013, 08:42 #8
По поводу using namespace std - прочти http://www.cyberforum.ru/blogs/34326/blog275.html. Я не думаю что у тебя каой то экзотический вариант кода с перекрёстным использованием имён, скажем free вместо функции идёт как переменная (это утрировано).
Так что на using namespace std грешить не стоит. Послушай совет у тебя утчека памяти, возможно ті использовал GL и частично отрисовывал графику с помощью GDI, при этом не освободил память из под какого-то активного графического элемента (того же пера к примеру), тогда идёт утечка объектов GDI == утечка памяти

Добавлено через 1 минуту

Не по теме:

kimirius, мне как и любому другому программисту нужен код для анализа

0
kimirius
0 / 0 / 0
Регистрация: 09.09.2012
Сообщений: 16
02.05.2013, 09:53  [ТС] #9
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
#include <gl\glut.h>
#include <iostream>
 
void ar(float x, float y)
{
    glColor3f(1.0, 0.0, 0.0);
     glVertex2f(x, y);
}
 
void ag(float x, float y)
{
    glColor3f(0.0, 1.0, 0.0);
     glVertex2f(x, y);
}
 
void ab(float x, float y)
{
    glColor3f(0.0, 0.0, 1.0);
     glVertex2f(x, y);
}
 
void awh(float x, float y)
{
    glColor3f(1.0, 1.0, 1.0);
     glVertex2f(x, y);
}
 
void abl(float x, float y)
{
    glColor3f(0.0, 0.0, 0.0);
     glVertex2f(x, y);
}
 
void display()
{
    float x=0,y=0;
    char c, c1;
    int p=4;
    glClear(GL_COLOR_BUFFER_BIT);
    while(true)
    {
        printf("vvedite napravlenie\n");
        scanf("%c",&c);
        switch(c)
        {
        case 'w': y+=0.01;break;
        case 's': y-=0.01;break;
        case 'd': x+=0.01;break;
        case 'a': x-=0.01;break;
        case 'p':   {printf("vvedite chvet\n");scanf("%c",&c1);
                    switch(c1)
                    {
                    case '1': p=1;break;
                    case '2': p=2;break;
                    case '3': p=3;break;
                    case '4': p=4;break;
                    case '5': p=5;break;
                    }}
        }
        glBegin(GL_POINTS);
        switch(p)
        {
        case 1: ar(x,y);break;
        case 2: ag(x,y);break;
        case 3: ab(x,y);break;
        case 4: awh(x,y);break;
        case 5: abl(x,y);break;
        }
        glEnd();
        glFlush();
    }
}
 
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(340, 340); //размер
    glutInitWindowPosition(900, 000); //позиция
    glutCreateWindow("mikro trosh"); //заголовок окна
    glClearColor(0.0, 0.0, 0.0, 1.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-0.5, 0.5, -0.5, 0.5, -1.0, 1.0);
    glutDisplayFunc(display);
    glutMainLoop();
}
0
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
02.05.2013, 10:10 #10
Я не знаю точно, как именно вы представляете работу данной программы, но для scanf() советую передавать "%s", а не "%c". Попробуйте, может заведётся.
P.S. в 50 строке открывается case, а break для него я не вижу
0
-=ЮрА=-
Заблокирован
Автор FAQ
02.05.2013, 10:23 #11
kimirius, ты очишал экран 1 раз
Цитата Сообщение от kimirius Посмотреть сообщение
glClear(GL_COLOR_BUFFER_BIT);
а в цикле кто чистить будет?
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
#include <gl\glut.h>
#include <stdio.h>
 
void ar(float x, float y)
{
    glColor3f(1.0, 0.0, 0.0);
     glVertex2f(x, y);
}
 
void ag(float x, float y)
{
    glColor3f(0.0, 1.0, 0.0);
     glVertex2f(x, y);
}
 
void ab(float x, float y)
{
    glColor3f(0.0, 0.0, 1.0);
     glVertex2f(x, y);
}
 
void awh(float x, float y)
{
    glColor3f(1.0, 1.0, 1.0);
     glVertex2f(x, y);
}
 
void abl(float x, float y)
{
    glColor3f(0.0, 0.0, 0.0);
     glVertex2f(x, y);
}
 
void display()
{
    float x=0,y=0;
    char c, c1;
    int p=4;
    
    while(true)
    {
        
        glClearColor(0.0, 0.0, 0.0, 0.0);
        glClearDepth(1.0);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glBegin(GL_POINTS);
        printf("vvedite napravlenie : ");
        scanf("%c",&c);getchar();
        switch(c)
        {
        case 'w': y+=0.01;break;
        case 's': y-=0.01;break;
        case 'd': x+=0.01;break;
        case 'a': x-=0.01;break;
        case 'p':   
            {
                printf("vvedite chvet : ");
                scanf("%c",&c1);getchar();
                switch(c1)
                {
                    case '1': p=1;break;
                    case '2': p=2;break;
                    case '3': p=3;break;
                    case '4': p=4;break;
                    case '5': p=5;break;
                }
            }
        }
        switch(p)
        {
            case 1: ar(x,y);break;
            case 2: ag(x,y);break;
            case 3: ab(x,y);break;
            case 4: awh(x,y);break;
            case 5: abl(x,y);break;
        }
        glEnd();
        glFlush();
    }
}
 
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(340, 340); //размер
    glutInitWindowPosition(900, 000); //позиция
    glutCreateWindow("mikro trosh"); //заголовок окна
    glClearColor(0.0, 0.0, 0.0, 1.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-0.5, 0.5, -0.5, 0.5, -1.0, 1.0);
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}
- пробуй

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
scanf("%c",&c);getchar();
getchar() - снимет из буфера '\n' который попадает в него после нажатия Enter

1
-=ЮрА=-
Заблокирован
Автор FAQ
02.05.2013, 10:33 #12
kimirius, мне больше понравился вариант с getch(нет граблей с вводом чара в цикле), но алгоритм явно недоработан т.к при 3-4 w/s точка перестаёт двигаться
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
#include <gl\glut.h>
#include <stdio.h>
#include <conio.h>
 
void ar(float x, float y)
{
    glColor3f(1.0, 0.0, 0.0);
     glVertex2f(x, y);
}
 
void ag(float x, float y)
{
    glColor3f(0.0, 1.0, 0.0);
     glVertex2f(x, y);
}
 
void ab(float x, float y)
{
    glColor3f(0.0, 0.0, 1.0);
     glVertex2f(x, y);
}
 
void awh(float x, float y)
{
    glColor3f(1.0, 1.0, 1.0);
     glVertex2f(x, y);
}
 
void abl(float x, float y)
{
    glColor3f(0.0, 0.0, 0.0);
     glVertex2f(x, y);
}
 
void display()
{
    float x=0,y=0;
    char c, c1;
    int p=4;
    while(true)
    {
        
        glClearColor(0.0, 0.0, 0.0, 0.0);
        glClearDepth(1.0);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glBegin(GL_POINTS);
        printf("vvedite napravlenie : ");c = getch();
        printf("%c\n", c);
        switch(c)
        {
        case 'w': y+=0.01;break;
        case 's': y-=0.01;break;
        case 'd': x+=0.01;break;
        case 'a': x-=0.01;break;
        case 'p':   
            {
                printf("vvedite chvet : ");c1 = getch();
                printf("%c\n", c1);
                switch(c1)
                {
                    case '1': p=1;break;
                    case '2': p=2;break;
                    case '3': p=3;break;
                    case '4': p=4;break;
                    case '5': p=5;break;
                }
            }
            break;
        default:
            printf("Entered unspurted key\n");
            break;
        }
        switch(p)
        {
            case 1: ar(x,y);break;
            case 2: ag(x,y);break;
            case 3: ab(x,y);break;
            case 4: awh(x,y);break;
            case 5: abl(x,y);break;
        }
        glEnd();
        glFlush();
    }
}
 
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(340, 340); //размер
    glutInitWindowPosition(900, 000); //позиция
    glutCreateWindow("mikro trosh"); //заголовок окна
    glClearColor(0.0, 0.0, 0.0, 1.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-0.5, 0.5, -0.5, 0.5, -1.0, 1.0);
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}
1
Вложения
Тип файла: rar kimirus.rar (17.7 Кб, 4 просмотров)
kimirius
0 / 0 / 0
Регистрация: 09.09.2012
Сообщений: 16
02.05.2013, 10:36  [ТС] #13
теперь она работает так как я планировал изначально ))) спасибо))) НО проблема осталась та же(
0
-=ЮрА=-
02.05.2013, 10:38
  #14

Не по теме:

Цитата Сообщение от kimirius Посмотреть сообщение
НО проблема осталась та же(
- последний экзешник вываливается после нескольких минут?

1
kimirius
0 / 0 / 0
Регистрация: 09.09.2012
Сообщений: 16
02.05.2013, 10:42  [ТС] #15
ВООООООТ при 3-4 w/s точка перестаёт двигаться. когда прога запускается сразу после компиляции(при нажатии кнопочки ввиде "play" в visual c++) она работает нормально, стабильно, пока не закрою, а если просто самому этот файл открыть то вот так и получается, что окошко GL висьнет почему то

Добавлено через 2 минуты
как ты ее собрал? =D она же пашет ))))

Добавлено через 1 минуту
нет не пашет ((, блин, но только что работала минут несколько )) то что ты мне в раре кинул
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2013, 10:42
Привет! Вот еще темы с ответами:

Не запускаются приложения - Windows 7
Здравствуйте. Проблема такая - при запуске некоторых приложений просто ничего не происходит, не выдается ни какая ошибка, только песочные...

Не запускаются приложения (Win 7) - Удаление вирусов
Здравствуйте, у меня возникла такая же проблема как и у пользователя &quot;haub &quot; Он уже создавал тему - ...

Не запускаются написанные приложения - C#
Здравстуйте, изачаю с# на Visual studio 2010/2013 Программы работают через Debug(Отладку) но запуск без отладки или из .exe файла...

Не запускаются некоторые приложения - Удаление вирусов
Перестали запускаться некоторые приложения. В процессах появляются на секунду затем исчезают. Windows 7 x64


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

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

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