Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра 
:(
    Опции темы
m1kle
Дата 24.8.2007, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



* я скачал opengl32.lib, и glu32.lib, вроде это то..

использую Dev-cpp

Это сообщение отредактировал(а) m1kle - 24.8.2007, 02:14
PM MAIL WWW MSN   Вверх
JackYF
Дата 24.8.2007, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(m1kle @  24.8.2007,  01:46 Найти цитируемый пост)
их инклюдить и куда ставить? 

Это бинарные файлы, их нужно прописать в настройки проекта (libraries).


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
m1kle
Дата 24.8.2007, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



уже лучше, но другая ошибка
  [Linker error] undefined reference to `WinMain@16' 
PM MAIL WWW MSN   Вверх
m1kle
Дата 24.8.2007, 03:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



 File format not recognized :(((
PM MAIL WWW MSN   Вверх
bsa
Дата 24.8.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



создай консольный проект. Или вместо функции main() создай WinMain(). Только учти, у нее другие параметры - прочитай в документации какие.

Это сообщение отредактировал(а) bsa - 24.8.2007, 09:38
PM   Вверх
m1kle
Дата 24.8.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Код
#define CDS_FULLSCREEN 4
#include <windows.h>        // Заголовочный файл для Windows
#include <gl\gl.h>            // Заголовочный файл для OpenGL32 библиотеки
#include <gl\glu.h>            // Заголовочный файл для GLu32 библиотеки
#include <gl\glaux.h>        // Заголовочный файл для GLaux библиотеки

static HGLRC hRC;        // Постоянный контекст рендеринга
static HDC hDC;            // Приватный контекст устройства GDI

BOOL    keys[256];        // Массив для процедуры обработки клавиатуры

GLvoid InitGL(GLsizei Width, GLsizei Height)    // Вызвать после создания окна GL
{
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
                            // Очистка экрана в черный цвет
    glClearDepth(1.0);        // Разрешить очистку буфера глубины
    glDepthFunc(GL_LESS);    // Тип теста глубины
    glEnable(GL_DEPTH_TEST);// разрешить тест глубины
    glShadeModel(GL_SMOOTH);// разрешить плавное цветовое сглаживание
    glMatrixMode(GL_PROJECTION);// Выбор матрицы проекции
    glLoadIdentity();        // Сброс матрицы проекции
    gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f);
                            // Вычислить соотношение геометрических размеров для окна
    glMatrixMode(GL_MODELVIEW);// Выбор матрицы просмотра модели
}

GLvoid ReSizeGLScene(GLsizei Width, GLsizei Height)
{
    if (Height==0)        // Предотвращение деления на ноль, если окно слишком мало
        Height=1;

    glViewport(0, 0, Width, Height);
        // Сброс текущей области вывода и перспективных преобразований

    glMatrixMode(GL_PROJECTION);// Выбор матрицы проекций
    glLoadIdentity();            // Сброс матрицы проекции

    gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f);
        // Вычисление соотношения геометрических размеров для окна
    glMatrixMode(GL_MODELVIEW);    // Выбор матрицы просмотра модели
}

GLvoid DrawGLScene(GLvoid)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        // очистка Экрана и буфера глубины
    glLoadIdentity();
        // Сброс просмотра
    glTranslatef(-1.5f,0.0f,-6.0f);    // Сдвинемся влево на 1.5 единицы и
                                    // в экран на 6.0
    glBegin(GL_TRIANGLES);
        glVertex3f( 0.0f, 1.0f, 0.0f);    // Вверх
        glVertex3f(-1.0f,-1.0f, 0.0f);    // Слева снизу
        glVertex3f( 1.0f,-1.0f, 0.0f);    // Справа снизу
    glEnd();

    glTranslatef(3.0f,0.0f,0.0f);        // Сдвинем вправо на 3 единицы

    glBegin(GL_QUADS);
        glVertex3f(-1.0f, 1.0f, 0.0f);    // Слева вверху
        glVertex3f( 1.0f, 1.0f, 0.0f);    // Справа вверху
        glVertex3f( 1.0f,-1.0f, 0.0f);    // Справа внизу
        glVertex3f(-1.0f,-1.0f, 0.0f);    // Слева внизу
    glEnd();

}

LRESULT CALLBACK WndProc(
                HWND    hWnd,
                UINT    message,
                WPARAM    wParam,
                LPARAM    lParam)
{
    RECT    Screen;        // используется позднее для размеров окна
    GLuint    PixelFormat;
    static    PIXELFORMATDESCRIPTOR pfd=
    {
        sizeof(PIXELFORMATDESCRIPTOR),    // Размер этой структуры
        1,                // Номер версии (?)
        PFD_DRAW_TO_WINDOW |// Формат для Окна
        PFD_SUPPORT_OPENGL |// Формат для OpenGL
        PFD_DOUBLEBUFFER,// Формат для двойного буфера
        PFD_TYPE_RGBA,    // Требуется RGBA формат
        16,                // Выбор 16 бит глубины цвета
        0, 0, 0, 0, 0, 0,// Игнорирование цветовых битов (?)
        0,                // нет буфера прозрачности
        0,                // Сдвиговый бит игнорируется (?)
        0,                // Нет буфера аккумуляции
        0, 0, 0, 0,        // Биты аккумуляции игнорируются (?)
        16,                // 16 битный Z-буфер (буфер глубины)  
        0,                // Нет буфера траффарета
        0,                // Нет вспомогательных буферов (?)
        PFD_MAIN_PLANE,    // Главный слой рисования
        0,                // Резерв (?)
        0, 0, 0            // Маски слоя игнорируются (?)
    };
    switch (message)    // Тип сообщения
    {
        case WM_CREATE:
        hDC = GetDC(hWnd);    // Получить контекст устройства для окна
        PixelFormat = ChoosePixelFormat(hDC, &pfd);
            // Найти ближайшее совпадение для нашего формата пикселов
        if (!PixelFormat)
        {
            MessageBox(0,"Can't Find A Suitable PixelFormat.","Error",MB_OK|MB_ICONERROR);
            PostQuitMessage(0);
            // Это сообщение говорит, что программа должна завершится
            break;    // Предтовращение повтора кода
        }
        if(!SetPixelFormat(hDC,PixelFormat,&pfd))
        {
            MessageBox(0,"Can't Set The PixelFormat.","Error",MB_OK|MB_ICONERROR);
            PostQuitMessage(0);
            break;
        }
        hRC = wglCreateContext(hDC);
        if(!hRC)
        {
            MessageBox(0,"Can't Create A GL Rendering Context.","Error",MB_OK|MB_ICONERROR);
            PostQuitMessage(0);
            break;
        }
        if(!wglMakeCurrent(hDC, hRC))
        {
            MessageBox(0,"Can't activate GLRC.","Error",MB_OK|MB_ICONERROR);
            PostQuitMessage(0);
            break;
        }
        GetClientRect(hWnd, &Screen);
        InitGL(Screen.right, Screen.bottom);
        break;

        case WM_DESTROY:
        case WM_CLOSE:
        ChangeDisplaySettings(NULL, 0);

        wglMakeCurrent(hDC,NULL);
        wglDeleteContext(hRC);
        ReleaseDC(hWnd,hDC);

        PostQuitMessage(0);
        break;

        case WM_KEYDOWN:
        keys[wParam] = TRUE;
        break;

        case WM_KEYUP:
        keys[wParam] = FALSE;
        break;

        case WM_SIZE:
        ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));
        break;

        default:
    return (DefWindowProc(hWnd, message, wParam, lParam));
    }
    return (0);
}

int WINAPI WinMain(
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance, 
        LPSTR lpCmdLine,
        int nCmdShow)
{
    MSG        msg;    // Структура сообщения Windows
    WNDCLASS    wc; // Структура класса Windows для установки типа окна
    HWND        hWnd;// Сохранение дискриптора окна

    wc.style            = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    wc.lpfnWndProc        = (WNDPROC) WndProc;
    wc.cbClsExtra        = 0;
    wc.cbWndExtra        = 0;
    wc.hInstance        = hInstance;
    wc.hIcon            = NULL;
    wc.hCursor            = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = NULL;
    wc.lpszMenuName        = NULL;
    wc.lpszClassName    = "OpenGL WinClass";

    if(!RegisterClass(&wc))
    {
    MessageBox(0,"Failed To Register The Window Class.","Error",MB_OK|MB_ICONERROR);
    return FALSE;
    }

    hWnd = CreateWindow(
    "OpenGL WinClass",
    "Jeff Molofee's GL Code Tutorial ... NeHe '99",    // Заголовок вверху окна

    WS_POPUP |
    WS_CLIPCHILDREN |
    WS_CLIPSIBLINGS,

    0, 0,            // Позиция окна на экране
    640, 480,        // Ширина и высота окна

    NULL,
    NULL,
    hInstance,
    NULL);

    if(!hWnd)
    {
    MessageBox(0,"Window Creation Error.","Error",MB_OK|MB_ICONERROR); 
        return FALSE;
    }

    DEVMODE dmScreenSettings;            // Режим работы

    memset(&dmScreenSettings, 0, sizeof(DEVMODE));    // Очистка для хранения установок
    dmScreenSettings.dmSize    = sizeof(DEVMODE);        // Размер структуры Devmode
    dmScreenSettings.dmPelsWidth    = 640;            // Ширина экрана
    dmScreenSettings.dmPelsHeight    = 480;            // Высота экрана
    dmScreenSettings.dmFields    = DM_PELSWIDTH | DM_PELSHEIGHT;    // Режим Пиксела
    ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN);
    // Переключение в полный экран

    ShowWindow(hWnd, SW_SHOW);
    UpdateWindow(hWnd);
    SetFocus(hWnd);

    while (1)
    {
        // Обработка всех сообщений
        while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
        {
            if (GetMessage(&msg, NULL, 0, 0))
            {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
            else
            {
                return TRUE;
            }
        }

        DrawGLScene();                // Нарисовать сцену
        SwapBuffers(hDC);            // Переключить буфер экрана
        if (keys[VK_ESCAPE]) SendMessage(hWnd,WM_CLOSE,0,0);    // Если ESC - выйти
    }
}

вот мой код, ошибка -   File format not recognized 
PM MAIL WWW MSN   Вверх
bsa
Дата 24.8.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Это в каком месте ошибка вылетает? На этапе выполнения, компиляции или линковки?
Приведи полный текст ошибки и строку консоли (лога компиляции), после которой она возникает.
PM   Вверх
m1kle
Дата 24.8.2007, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



netwar.ru/screen.jpg, я скриншот залил.
PM MAIL WWW MSN   Вверх
bsa
Дата 24.8.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(m1kle @ 24.8.2007,  11:21)
netwar.ru/screen.jpg, я скриншот залил.

Куда ты залил? Ничего не открывается.
PM   Вверх
m1kle
Дата 24.8.2007, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



PM MAIL WWW MSN   Вверх
bsa
Дата 24.8.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Более бесполезного скриншота я не видел.
Открой "Журнал компиляции" и дай его содержимое.
Скорее всего, ты как-то криво подключил либу.
PM   Вверх
m1kle
Дата 24.8.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Компилятор: Default compiler
Building Makefile: "C:\Users\.m1kle\Desktop\.m1kle Studios\Название в разработке\проект\Makefile.win"
Выполнение  make...
make.exe -f "C:\Users\.m1kle\Desktop\.m1kle Studios\Название в разработке\проект\Makefile.win" all
g++.exe main.o  -o "Проект2.exe" -L"C:/Dev-Cpp/lib" -mwindows -lglaux -lopengl32 ../glu32.lib ../opengl32.lib  

../glu32.lib: file not recognized: File format not recognized
collect2: ld returned 1 exit status

make.exe: *** [Проект2.exe] Error 1

Выполнение завершено
PM MAIL WWW MSN   Вверх
bsa
Дата 24.8.2007, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



ну вот. теперь все понятно.
библиотеки подключаются ключем -l. Например: -lopengl32 -lglu32. То что у тебя есть ../glu32.lib и вызывает ошибку, так как g++.exe (компилятор Си++) пытается разобраться это исходник (*.cpp) или объектный файл (*.o), но не может опознать, вот и ругается.
PM   Вверх
m1kle
Дата 24.8.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Спасибо ОРГОМНОЕ, работает, просто отпад %))))

Добавлено @ 13:36
А в чём измеряется 0.0f, а то я поставил разршение экрана 1440x900, и объекты плохо отображаются...
glVertex3f( 0.0f, 1.0f, 0.0f);
т.е. что это за тип данных x.xf??

Это сообщение отредактировал(а) m1kle - 24.8.2007, 13:38
PM MAIL WWW MSN   Вверх
bsa
Дата 24.8.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Одна тема, один вопрос.
0.0f - это тип float. Может книжку стоит почитать?
PM   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.