Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 1
Регистрация: 26.04.2018
Сообщений: 19

Не открывается окно при использовании graphics.h

21.03.2019, 13:55. Показов 3154. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!Столкнулся с проблемой,программа не хочет рисовать отрезок.В консольном окне появляется надпись:
Process returned -1073741819 (0xC0000005) execution time : 3.402 s"
Но графическое окно не появляется.Использую CodBlocks.Что делать?




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 <stdio.h>
#include <graphics.h>
 
void BrezLine(POINT from, POINT to, COLORREF color)
{
    int x, y, xend, yend, s, dx, dy, d, inc1, inc2;
    int x1, x2, y1, y2;
 
    x1 = from.x;
    x2 = to.x;
    y1 = from.y;
    y2 = to.y;
    dx = abs(x2-x1);
    dy = abs(y2-y1);
 
    if(dx > dy)
    {
        inc1 = 2*dy;
        inc2 = 2*(dy-dx);
        d = 2*dy-dx;
 
        if(x1 < x2)
        {
            x = x1; y = y1; xend = x2;
            (y1 < y2) ? s = 1 : s = -1;
        }
        else
        {
            x = x2;
            y = y2;
            xend = x1;
            (y1 > y2) ? s = 1 : s = -1;
        }
 
        putpixel(x,y,color);
 
        while(x < xend)
        {
            x++;
            if(d > 0)
            {
                y += s;
                d += inc2;
            }
            else d += inc1;
            putpixel(x,y,color);
        }
    }
    else
    {
        inc1 = 2*dx;
        inc2 = 2*(dx-dy);
        d = 2*dx-dy;
 
        if(y1 < y2)
        {
            y = y1; x = x1; yend = y2;
            (x1 < x2) ? s = 1 : s = -1;
        }
        else
        {
            y = y2;
            x = x2;
            yend = y1;
            (x1 > x2) ? s = 1 : s = -1;
        }
 
        putpixel(x,y,color);
 
        while(y < yend)
        {
            y++;
            if(d > 0)
            {
                x += s;
                d += inc2;
            }
            else d += inc1;
            putpixel(x,y,color);
        }
    }
}
 
int main()
{
    POINT f, t, q, w;
    f.x = 45; f.y = -98;
    t.x = 700; t.y = 400;
 
    initwindow(800,600);
    BrezLine(f,t,0x00ff00b2);
 
    getch();
    closegraph();
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2019, 13:55
Ответы с готовыми решениями:

Не открывается окно вывода при использовании graphics.h
скажите, пожалуйста где ошибка, почему не открывается окно вывода. Что исправить и где? #include&lt;dos.h&gt; ...

Vector Graphics ActiveX - множество ошибок при использовании
Уважаемые коллеги, кто-то работал с сием чудом? Vector Graphics ActiveX Сайт автора либо переехал, либо закрылся, в...

При загрузке Windows открывается окно cmd и открывается сайт в браузере
Доброго времени суток. Проблемка тут случилась. Была скачана какая-то прога непонятная. Та благополучно удалила все антивурисники на...

25
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.03.2019, 14:38
Цитата Сообщение от CrazyPanfil Посмотреть сообщение
Что делать?
Выбросить нафиг это старье.
graphics.h - библиотека которая использовалась старыми борландовскими компиляторами, всместе с DOS (предшественником виндовс).
Берите лучше SDL (для 2D) или DirectX / OpenGL (для посложнее).
1
0 / 0 / 1
Регистрация: 26.04.2018
Сообщений: 19
21.03.2019, 14:52  [ТС]
Я читал подобное про graphics.h,но по заданию требуется сделать именно с ним
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.03.2019, 14:56
Цитата Сообщение от CrazyPanfil Посмотреть сообщение
Я читал подобное про graphics.h,но по заданию требуется сделать именно с ним
Устанавливайте вирталку, на нее ставьте DOS, потом найдите старый компилятор под DOS и пишите.
Вероятно этот вариант самый простой, нежели пытатся воскресить труп в современной ОС и в современных компиляторвх.
Плюс ко всему у вас КодБлок который по дефолту юзает MinGW который является портом gcc (не факт что не кривым), и я что-то не уверен что gcc (он же MinGW) умеет работать с виндовыми либами, если честно ниразу не пробовал, поправьте кто таким на винде пользовался.
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.03.2019, 17:44
CrazyPanfil, либу откуда взял?

Добавлено через 1 минуту
Цитата Сообщение от Azazel-San Посмотреть сообщение
и я что-то не уверен что gcc (он же MinGW) умеет работать с виндовыми либами, если честно ниразу не пробовал, поправьте кто таким на винде пользовался.
Эта либа собирается любым компилятором из исходников (а можно и просто исходники в проект добавить).
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.03.2019, 17:47
...
Вложения
Тип файла: rar graphics_mingw.rar (44.8 Кб, 10 просмотров)
0
0 / 0 / 0
Регистрация: 26.04.2018
Сообщений: 1
21.03.2019, 21:43
панфил, аналогичная история, все сделал по инструкции, но выдает только это окно
Миниатюры
Не открывается окно при использовании graphics.h  
0
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,960
Записей в блоге: 216
21.03.2019, 21:52
Цитата Сообщение от CrazyPanfil Посмотреть сообщение
Столкнулся с проблемой,программа не хочет рисовать отрезок.
Deprecated OpenGL 1.1, Visual Studio 2015: Lines_FreeGlutOpenGL11Cpp.zip

Название: Lines_FreeGlutOpenGL11Cpp.png
Просмотров: 98

Размер: 2.7 Кб

main.cpp

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
#include <Gl/freeglut.h>
#include <string>
 
void DrawText(float x, float y, std::string text)
{
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)text.c_str());
}
 
void Initialize()
{
    glClearColor(0.933f, 0.945f, 0.945f, 1.0);
 
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0f, 100.0f, 0.0f, 100.0f, -1.0f, 1.0f);
}
 
void Draw()
{
    glClear(GL_COLOR_BUFFER_BIT);
 
    glBegin(GL_LINES);
    {
        // First Line
        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex2f(0.0f, 0.0f);
        glVertex2f(25.0f, 50.0f);
 
        // Second Line
        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex2f(25.0f, 50.0f);
        glVertex2f(75.0f, 60.0f);
 
        // Third Line
        glColor3f(0.298f, 0.549f, 0.803f);
        glVertex2f(75.0f, 60.0f);
        glVertex2f(100.0f, 90.0f);
    }
    glEnd();
 
    glColor3f(0.0f, 0.0f, 0.0f);
    DrawText(4.0f, 3.0f, "(0, 0)");
    DrawText(15.0f, 55.0f, "(25, 50)");
    DrawText(65.0f, 53.0f, "(75, 60)");
    DrawText(73.0f, 90.0f, "(100, 90)");
 
    glutSwapBuffers();
}
 
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Lines");
    Initialize();
    glutDisplayFunc(Draw);
    glutMainLoop();
 
    return 0;
}
1
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
22.03.2019, 10:53
Цитата Сообщение от CrazyPanfil Посмотреть сообщение
(x1 < x2) ? s = 1 : s = -1;
В Си так делать нельзя. Да и вообще, оператор '?' не предназначен для замены if
Цитата Сообщение от CrazyPanfil Посмотреть сообщение
В консольном окне появляется надпись:
Process returned -1073741819 (0xC0000005) execution time : 3.402 s"
У меня все скомпилировалось и выполнилось нормально. Правда я, естественно, поставил заглушки на функции graphics.h (откуда ж я возьму вашу реализацию?). Некоторое удивление вызывает вызов putpixel с отрицательными координатами. Не то чтобы это могло вызвать ошибку, но уж если линия выходит за пределы области рисования, хорошо бы ее отрезать.

Добавлено через 38 минут
Нашел-таки у себя TurboC какой-то там древней версии, где еще был graphics.h и даже DOSBox. Все равно пример из 1-го поста не компилируется.
0
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
22.03.2019, 13:54
graphics.h File Reference
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
#include <wx/wx.h>
#include <wx/graphics.h>
 
class MyApp : public wxApp
{
public:
    virtual bool OnInit();
};
 
class MyFrame : public wxFrame
{
public:
    MyFrame();
 
private:
    void OnPaint(wxPaintEvent &event);
 
};
 
wxIMPLEMENT_APP(MyApp);
 
bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame();
    frame->Show(true);
    return true;
}
 
MyFrame::MyFrame() : wxFrame(NULL, wxID_ANY, "graphics")
{
    Bind(wxEVT_PAINT, &MyFrame::OnPaint, this);
}
 
 
void MyFrame::OnPaint(wxPaintEvent &event)
{
    wxPaintDC dc(this);
    wxGraphicsContext *gc = wxGraphicsContext::Create( dc );
    if (gc)
    {
        gc->SetPen( *wxRED_PEN );
        wxGraphicsPath path = gc->CreatePath();
        path.MoveToPoint(50.0, 50.0);
        path.AddLineToPoint(100.0, 100.0);
        path.AddLineToPoint(250.0, 150.0 );
        gc->StrokePath(path);
        delete gc;
    }
}
Миниатюры
Не открывается окно при использовании graphics.h  
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
22.03.2019, 17:58
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Все равно пример из 1-го поста не компилируется.
А у меня компилируется, и даже работает.
Миниатюры
Не открывается окно при использовании graphics.h  
0
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
22.03.2019, 18:19
Цитата Сообщение от nd2 Посмотреть сообщение
А у меня компилируется, и даже работает.
Это не похоже на
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
TurboC какой-то там древней версии, где еще был graphics.h и даже DOSBox
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
22.03.2019, 20:10
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это не похоже на
Это похоже на:
Цитата Сообщение от nd2 Посмотреть сообщение
Эта либа собирается любым компилятором из исходников (а можно и просто исходники в проект добавить).
0
0 / 0 / 1
Регистрация: 26.04.2018
Сообщений: 19
23.03.2019, 14:12  [ТС]
В общем,я снес кодблокс,поставил его заново,добавил в корневую папку несколько файлов graphics.h windgim.h и libbgi.a(все по туториалу) и код заработал.когда я первый раз пытался сделать то же самое,то ничего не работало.Всем спасибо за ответы!
0
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,960
Записей в блоге: 216
23.03.2019, 22:36
My Original Message in English
I just will post it here. Maybe it will be useful for someone.

Modern OpenGL 3.1, Visual Studio: Lines_GlfwOpenGL31Cpp.zip

All libraries are included in the project. You can download and run it in VS immediately.

I use this libraries in the project. You can find them in the "Libs" folder:
  • Modern OpenGL 3.1 - graphics API for drawing using video card GPU and video card RAM
  • GLFW - for creating a window
  • GLAD - for definitions of OpenGL functions
  • GLM - for mathematics functions, linear algebra classes, like: matrices, vectors and so on.


Translate Google Result:

Я просто опубликую это здесь. Может быть, это будет кому-то полезно.

Современный OpenGL 3.1, Visual Studio: Lines_GlfwOpenGL31Cpp.zip

Все библиотеки включены в проект. Вы можете скачать и запустить его в VS немедленно.

Название: Lines_GlfwOpenGL31Cpp.png
Просмотров: 71

Размер: 2.0 Кб

Я использую эти библиотеки в проекте. Вы можете найти их в папке "Libs":
  • Современный OpenGL 3.1 - графический API для рисования с использованием видеокарты GPU и ОЗУ видеокарты
  • GLFW - для создания окна
  • GLAD - для определения функций OpenGL
  • GLM - для математических функций, классов линейной алгебры, таких как: матрицы, векторы и так далее.

Color.vert.glsl
glSlang
1
2
3
4
5
6
7
8
9
#version 140
 
in vec2 aPosition;
uniform mat4 uProjMatrix;
 
void main()
{
    gl_Position = uProjMatrix * vec4(aPosition, 0.0, 1.0);
}
Color.frag.glsl
glSlang
1
2
3
4
5
6
7
8
#version 140
 
out vec4 fragColor;
 
void main()
{
    fragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
main.cpp
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
190
191
192
193
194
195
196
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <glm/gtc/matrix_transform.hpp>
 
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
 
typedef unsigned short  ushort;
typedef glm::vec2       vec2;
typedef glm::mat4       mat4;
 
struct Vertex
{
    vec2 pos;
};
 
void showErrorMessageAndExit(std::string message)
{
    std::cout << message << std::endl;
    std::cout << "\nPress Enter key for exit." << std::endl;
    glfwTerminate();
    std::getchar();
    exit(1);
}
 
std::string readStringFromFile(std::string filename)
{
    std::string res;
    std::string line;
    std::ifstream in(filename);
 
    if (in.is_open())
    {
        while (getline(in, line))
        {
            res += line + "\n";
        }
    }
    in.close();
 
    return res;
}
 
GLint CompileShader(std::string filename)
{
    GLint vs = glCreateShader(GL_VERTEX_SHADER);
    std::string cString = readStringFromFile("Data\\Shaders\\" + filename + ".vert.glsl");
    GLchar const* files[] = { cString.c_str() };
    GLint lengths[] = { cString.size() };
    glShaderSource(vs, 1, files, lengths);
    glCompileShader(vs);
 
    GLint success;
    GLchar infoLog[512];
    glGetShaderiv(vs, GL_COMPILE_STATUS, &success);
    if (!success)
    {
        glGetShaderInfoLog(vs, 512, NULL, infoLog);
        showErrorMessageAndExit("Vertex Shader Error. " + std::string(infoLog));
    }
 
    GLint fs = glCreateShader(GL_FRAGMENT_SHADER);
    cString = readStringFromFile("Data\\Shaders\\" + filename + ".frag.glsl");
    GLchar const* files1[] = { cString.c_str() };
    GLint lengths1[] = { cString.size() };
    glShaderSource(fs, 1, files1, lengths1);
    glCompileShader(fs);
 
    glGetShaderiv(fs, GL_COMPILE_STATUS, &success);
    if (!success)
    {
        glGetShaderInfoLog(fs, 512, NULL, infoLog);
        showErrorMessageAndExit("Fragment Shader Error. " + std::string(infoLog));
    }
 
    GLint prog = glCreateProgram();
    glAttachShader(prog, vs);
    glAttachShader(prog, fs);
    glLinkProgram(prog);
    glUseProgram(prog);
 
    glDetachShader(prog, vs);
    glDetachShader(prog, fs);
    glDeleteShader(vs);
    glDeleteShader(fs);
 
    return prog;
}
 
void initVertexBuffers(GLint program)
{
    // Vertices
    std::vector<Vertex> verts(5);
    verts[0].pos = vec2(0.0f, 30.0f);
    verts[1].pos = vec2(20.0f, 50.0f);
    verts[2].pos = vec2(40.0f, 40.0f);
    verts[3].pos = vec2(60.0f, 70.0f);
    verts[4].pos = vec2(80.0f, 80.0f);
 
    // Indices
    std::vector<ushort> inds(verts.size());
    for (size_t i = 0; i < verts.size(); i++)
    {
        inds[i] = i;
    }
 
    GLuint vertexBufferObject;
    GLuint indexBufferObject;
    glGenBuffers(1, &vertexBufferObject);
    glGenBuffers(1, &indexBufferObject);
 
    glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject);
    glBufferData(GL_ARRAY_BUFFER, sizeof(Vertex) * verts.size(), &(verts[0].pos.x), GL_STATIC_DRAW);
 
    GLint aPositionLoc = glGetAttribLocation(program, "aPosition");
    if (aPositionLoc == -1) showErrorMessageAndExit("Failed to get a \"aPosition\" variable.");
    glVertexAttribPointer(aPositionLoc, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid*)(offsetof(Vertex, pos)));
    glEnableVertexAttribArray(aPositionLoc);
 
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBufferObject);
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(ushort) * inds.size(), &(inds[0]), GL_STATIC_DRAW);
}
 
void initialize()
{
    // Load definitions of OpenGL functions
    if (!gladLoadGL()) showErrorMessageAndExit("Failed to load definitions of OpenGL functions.");
 
    // Set a background color
    glClearColor(0.9f, 0.9f, 0.9f, 1.0f);
 
    // Get a color shader program
    GLint program = CompileShader("Color");
 
    // Initialize vertex buffers
    initVertexBuffers(program);
 
    // Initialize a projection matrix in the vertex shader
    mat4 projMatrix = glm::ortho(0.0f, 100.0f, 0.0f, 100.0f);
    GLint uProjMatrixLocation = glGetUniformLocation(program, "uProjMatrix");
    if (uProjMatrixLocation == -1)
    {
        showErrorMessageAndExit("Failed to get the uProjMatrix variable.");
    }
    glUniformMatrix4fv(uProjMatrixLocation, 1, false, &projMatrix[0][0]);
}
 
void draw()
{
    // Clear the screen with the background color
    glClear(GL_COLOR_BUFFER_BIT);
 
    // Draw the lines
    glDrawElements(GL_LINE_STRIP, 5, GL_UNSIGNED_SHORT, 0);
}
 
int main()
{
    // Initialize GLFW
    if (!glfwInit()) showErrorMessageAndExit("Failed to initialize GLFW.");
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_FALSE);
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
    GLFWwindow* window = glfwCreateWindow(256, 256, "Lines", nullptr, nullptr);
    // Create a window
    if (!window) showErrorMessageAndExit("Failed to create a window.");
    // Make context current
    glfwMakeContextCurrent(window);
    // Initialize
    initialize();
    // Show window and run a window loop
    while (!glfwWindowShouldClose(window))
    {
        glfwPollEvents();
 
        // Close window if the user press the Escape key
        if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
        {
            glfwSetWindowShouldClose(window, true);
        }
 
        // Clear a render area with the background color
        glClear(GL_COLOR_BUFFER_BIT);
 
        draw();
 
        // Swap the back and the front buffers
        glfwSwapBuffers(window);
    }
 
    glfwTerminate();
    return 0;
}
1
 Аватар для COKPOWEHEU
4079 / 2677 / 432
Регистрация: 09.09.2017
Сообщений: 11,888
24.03.2019, 11:37
Цитата Сообщение от nd2 Посмотреть сообщение
Это похоже на:
Эта либа собирается любым компилятором из исходников (а можно и просто исходники в проект добавить).
Ох, ладно. Выложите (или дайте ссылку) вашу graphics.h, посмотрим чем оно там компилируется. Очень я сомневаюсь, что так-таки любым компилятором, пусть даже среди распространенных современных.
8Observer8, не подходят ТСу человеческие решения
Цитата Сообщение от CrazyPanfil Посмотреть сообщение
Я читал подобное про graphics.h,но по заданию требуется сделать именно с ним
0
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,960
Записей в блоге: 216
24.03.2019, 11:58
My Original Message in English
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
не подходят ТСу человеческие решения
But human solutions must be here. Deprecated tools are not our problem it is a problem of bad teachers. We must to show right solutions using: Qt, wxWidgets, SDL2, SFML, modern OpenGL and so on. And addition this solution I made for myself to practice in modern OpenGL 3.x. to increase my skills, because only regular training can improve skills and knowledges.


Translate Google Result:
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
не подходят ТСу человеческие решения
Но человеческие решения должны быть здесь. Устаревшие инструменты - это не наша проблема, это проблема плохих учителей. Мы должны показать правильные решения, используя: Qt, wxWidgets, SDL2, SFML, современный OpenGL и так далее. И вдобавок это решение я сделал для себя, чтобы попрактиковаться в современном OpenGL 3.x. повысить свои навыки, потому что только регулярное обучение может улучшить навыки и знания.
0
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
24.03.2019, 13:09
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Очень я сомневаюсь, что так-таки любым компилятором
COKPOWEHEU, видел такую, это переписанная версия, внутри которой GDI.
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,304
24.03.2019, 14:17
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Translate Google Result:
Я просто опубликую это здесь. Может быть, это будет кому-то полезно.
Современный OpenGL 3.1, Visual Studio: Lines_GlfwOpenGL31Cpp.zip
Все библиотеки включены в проект. Вы можете скачать и запустить его в VS немедленно.
Я использую эти библиотеки в проекте. Вы можете найти их в папке "Libs":
Современный OpenGL 3.1 - графический API для рисования с использованием видеокарты GPU и ОЗУ видеокарты
GLFW - для создания окна
GLAD - для определения функций OpenGL
GLM - для математических функций, классов линейной алгебры, таких как: матрицы, векторы и так далее.
Color.vert.glsl
glSlangВыделить код

#version 140
in vec2 aPosition;
uniform mat4 uProjMatrix;
void main()
{
* * gl_Position = uProjMatrix * vec4(aPosition, 0.0, 1.0);
}
Color.frag.glsl
glSlangВыделить код

#version 140
out vec4 fragColor;
void main()
{
* * fragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
main.cpp

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <glm/gtc/matrix_transform.hpp>
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
typedef unsigned short *ushort;
typedef glm::vec2 * * * vec2;
typedef glm::mat4 * * * mat4;
struct Vertex
{
* * vec2 pos;
};
void showErrorMessageAndExit(std::string message)
{
* * std::cout << message << std::endl;
* * std::cout << "\nPress Enter key for exit." << std::endl;
* * glfwTerminate();
* * std::getchar();
* * exit(1);
}
std::string readStringFromFile(std::string filename)
{
* * std::string res;
* * std::string line;
* * std::ifstream in(filename);
У меня при компиляции выдает ошибки. Подскажите как в Visual Studio 2015 подключить все библиотеки и хедеры сразу же вместе, а не по отдельности?
Миниатюры
Не открывается окно при использовании graphics.h  
0
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,960
Записей в блоге: 216
24.03.2019, 14:31
My Original Message in English
Did you unzip the archive or you open a project from the archive? You need unzip before you will open the ".sln" file.


Translate Google Result:

Вы распаковали архив или открыли проект из архива? Вам нужно распаковать, прежде чем вы откроете файл ".sln".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2019, 14:31
Помогаю со студенческими работами здесь

При загрузке Windows открывается окно cmd и открывается сайт в хроме
После загрузки Windows7 открывается окно cmd и открывается сайт в хроме.

При загрузке Windows открывается окно cmd и открывается сайт в браузере
Здравствуйте! Помогите, пожалуйста! При загрузке компьютера открывается окно cmd и загружается сайт в хроме При этом не открывается...

При загрузке Windows открывается окно cmd и открывается сайт в браузере
Добрый вечер. У меня такая проблема. При включении компьютера открывается пустая командная строка, в названии которой есть...

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

При загрузке Windows открывается окно cmd и открывается какой то сайт в браузере
Всем привет, подскажите как исправить &quot;При загрузке Windows открывается окно cmd и открывается сайт dinoklafbzor.org в браузере&quot;...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru