![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Ошибка при компилировании |
|
C/C++ - Ошибка при компилировании
|
Новый участник Сообщения: 3 |
Помогите пожалуйста. При компиляции данной программы в Code Blocks с компилятором mingw и подключением библиотеки graphics.h выскакивают две ошибки, связанные с данной библиотекой:
http://forum.oszone.net/attachment.p...0&d=1351246876 Методы предложенные в теме http://forum.oszone.net/thread-178258.html не помогли. #include <graphics.h> // заголовочный файл графического режима Borland Graphics Interface #include <cmath> // заголовочный файл для простых математических операций #include <ctime> // заголовочный файл для простых математических операций #include <conio.h> // заголовочный файл для функции getch () и kbhit () unsigned char cx, cy; // объявление переменных cx и cy, которые будут соответствовать координатам центральной точки окна unsigned char radius=100; // объявление переменной radius, которая определяет размер часов unsigned char pos=1; // текущая позиция в меню void menu() // процедура рисования меню { cleardevice(); // очистка экрана setcolor(COLOR(255,0,0)); // установка дальнейшего цвета для рисования в палитре RGB (255.0.0 - красный) settextstyle(DEFAULT_FONT,HORIZ_DIR,4); // DEFAULT_FONT - установление стандартного шрифта, HORIZ_DIR - горизонтальное направление текста, 4 - размер шрифта outtextxy(20, 20, "СТРЕЛОЧНЫЕ"); // рисование текста "стрелочные" с координатами x = 20 y = 20 setcolor(COLOR(0,0,255)); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,3); outtextxy(143, 40, "ЧАСЫ"); setcolor(COLOR(255,255,0)); outtextxy(300, 55, "1.0"); setcolor(LIGHTGRAY); settextstyle(DEFAULT_FONT,HORIZ_DIR,1); outtextxy(70, 100, "Открыть часы"); outtextxy(70, 150, "О программе..."); outtextxy(70, 200, "Выход"); if(pos==4) // если пользователь вышел за пределы меню вниз ... { pos=1; // ... возвращаемся на первую позицию меню }; if(pos==0) // если пользователь вышел за пределы меню вверх ... { pos=3; // ... возвращаемся на последнюю позицию меню }; switch(pos) // оператор выбора текущего положения в меню { case 1: setcolor(COLOR(255,255,255)); outtextxy(70, 100, "Открыть часы"); break; case 2: setcolor(COLOR(255,255,255)); outtextxy(70, 150, "О программе..."); break; case 3: setcolor(COLOR(255,255,255)); outtextxy(70, 200, "Выход"); break; } } void menu_about() // процедура вывода меню "О программе ..." { cleardevice(); // очистка экрана setcolor(COLOR(255,0,0)); settextstyle(DEFAULT_FONT,HORIZ_DIR,4); outtextxy(20, 20, "СТРЕЛОЧНЫЕ"); setcolor(COLOR(0,0,255)); settextstyle(SANS_SERIF_FONT,HORIZ_DIR,3); outtextxy(143, 40, "ЧАСЫ"); setcolor(COLOR(255,255,0)); outtextxy(300, 55, "1.0"); setcolor(LIGHTGRAY); settextstyle(DEFAULT_FONT,HORIZ_DIR,1); outtextxy(40, 130, "11111"); outtextxy(40, 150, "Copyright © "); outtextxy(40, 170, "КБ-12-1"); getch(); // функция ожидания нажатия клавиши menu(); // рисование меню } void display(unsigned char radius) // процедура рисования часов (циферблата) { setcolor(COLOR(255,255,255)); circle(cx, cy, radius+25); // рисование внешних колец часов (корпус) circle(cx, cy, radius+23); setcolor(COLOR(0,255,0)); unsigned int angle; // объявление переменной для хранения угла for (angle=0; angle<360; angle+=30) // цикл рисования часовых точек { circle(cx+radius*cos(angle*M_PI/180), cy+radius*sin(angle*M_PI/180), 2); } for(angle=0; angle<360; angle+=6) // цикл рисования секундных точек { putpixel(cx+radius*cos(angle*M_PI/180), cy+radius*sin(angle*M_PI/180), COLOR(255,255,0)); } } void get_time(unsigned char *h, unsigned char *m, unsigned char *s) // процедура для получения текущего времени { time_t rawtime; // создаем объект по типу структуры time_t, с именем rawtime time(&rawtime); // записываем в объект rawtime результат ф-й time (ф-я time возвращает кол-во секунд от 1970г.) tm *timeinfo; // объявляем указатель * timeinfo, который будет указывать на область памяти с типом данных tm timeinfo = localtime(&rawtime); // присваиваем указателю * timeinfo адрес, который возвращает ф-я localtime (), которая преобразует количество секунд в структуре типа t_time в структуру типа tm, в которой в качестве полей содержатся целочисленные значения секунд, минут, часов и возвращает адрес на заполненную структуру tm текущим временем *h=timeinfo->tm_hour; // присваиваем переменной hour (через указатель h) значение поля tm_hour в структуре типа tm *m=timeinfo->tm_min; // присваиваем переменной minute (через указатель h) значение поля tm_min в структуре типа tm *s=timeinfo->tm_sec; // присваиваем переменной second (через указатель h) значение поля tm_sec в структуре типа tm } void needle(unsigned char h, unsigned char m, unsigned char s) // процедура для анимации секундной стрелки { /** Зарисовывают исходное положение стрелок черным цветом **/ setcolor(0); line(cx,cy, // начальные координаты линии x и y (из центра экрана) для рисования секундной стрелки cx+(radius-10)*cos( ((s*6-6)-90) * M_PI/180 ), // конечная координата x cy+(radius-10)*sin( ((s*6-6)-90) * M_PI/180 )); // конечная координата y line(cx,cy, // начальные координаты линии x и y (из центра экрана) для рисования минутной стрелки cx+(radius-20)*cos( ((m*6-6)-90) * M_PI/180 ), // конечная координата x cy+(radius-20)*sin( ((m*6-6)-90) * M_PI/180 )); // конечная координата y line(cx,cy, // начальные координаты линии x и y (из центра экрана) для рисования часовой стрелки cx+(radius-(radius/2))*cos( ((h*30-30)-90+(m/2-0.5)) * M_PI/180 ), // конечная координата x cy+(radius-(radius/2))*sin( ((h*30-30)-90+(m/2-0.5)) * M_PI/180 )); // конечная координата y /** Конец ------------------------------------------------- **/ /** Определяем координаты и рисуем стрелки часов **/ setcolor(COLOR(0,0,255)); line(cx,cy, // начальные координаты линии x и y (из центра экрана) для рисования секундной стрелки cx+(radius-10)*cos( ((s*6)-90) * M_PI/180 ), // конечная координата x cy+(radius-10)*sin( ((s*6)-90) * M_PI/180 )); // конечная координата y setcolor(COLOR(255,255,0)); line(cx,cy, // начальные координаты линии x и y (из центра экрана) для рисования минутной стрелки cx+(radius-20)*cos( ((m*6)-90) * M_PI/180 ), // конечная координата x cy+(radius-20)*sin( ((m*6)-90) * M_PI/180 )); // конечная координата y setcolor(COLOR(255,0,0)); line(cx,cy, // начальные координаты линии x и y (из центра экрана) для рисования часовой стрелки cx+(radius-(radius/2))*cos( ((h*30)-90+(m/2)) * M_PI/180 ), // конечная координата x cy+(radius-(radius/2))*sin( ((h*30)-90+(m/2)) * M_PI/180 )); // конечная координата y /** Конец ------------------------------------------------- **/ } void open_clock() // процедура вызова часов { cleardevice(); // очистка экрана cx=getmaxx()/2; // определения координаты x, для центральной точки окна cy=getmaxy()/2; // определения координаты y, для центральной точки окна display(radius); // вызов процедуры для рисования часов (циферблата) unsigned char hour, minute, second; // объявление переменных для сохранения текущего времени while(!kbhit()) { get_time(&hour,&minute,&second); // вызов процедуры для получения текущего времени needle(hour,minute,second); // вызов процедуры рисования стрелок с параметрами текущего времени setcolor(COLOR(255,255,255)); circle(cx,cy,2); // рисуем маленькую точку по центру часов, поверх стрелок delay(250); // задержка в 250 мс (цикл обновляется 4 раза в секунду) } menu(); // рисование меню } int main() // главная программа { initwindow(400, 300); // инициализация окна для графического режима (400x300 пикселей) menu(); // рисование меню unsigned char key; // объявление переменной для хранения кода нажатой клавиши while(key!=27) // цикл работы программы, пока не нажата клавиша Esc { key=getch(); // присвоение переменной key кода нажатой клавиши switch(key) // оператор выбора нажатой клавиши { case 72: // если нажата клавиша "вверх" pos--; // меняем позицию меню на одну вверх menu(); // рисуем меню уже с новой активной позицией break; case 80: // если нажата клавиша "вниз" pos++; // меняем позицию меню на одну вниз menu(); // рисуем меню уже с новой активной позицией break; case 13: // если нажата клавиша Enter switch(pos) // оператор выбора позиции меню { case 1: // если позиция 1 (Открыть часы) open_clock(); // вызов процедуры рисования часов break; case 2: // если позиция 2 (О программе ...) menu_about(); // вызов процедуры рисования меню "О программе ..." break; case 3: // если позиция 3 (Выход) closegraph(); // закрытие графического режима return 0; // возврат значения 0 главной программы (закрытие) } } } } |
|
Отправлено: 14:24, 26-10-2012 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать вероятнее всего вы пишете программу на С, тогда как WinBGIm написана на С++. Укажите компилятору что это с++ или переименуйте файл в cpp
|
Отправлено: 17:32, 26-10-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать Файл в cpp, в компиляторе указано, что это C++
|
Отправлено: 20:22, 26-10-2012 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Восстановление - BusinessCardsMX - Неустранимая ошибка приложения. Ошибка error #3000 | twinzzz75 | Программное обеспечение Windows | 22 | 23-01-2012 20:20 | |
2008 - [решено] 2 DNS в одном домене. Ошибка Kerberos. Ошибка DCOM | Kaimor | Windows Server 2008/2008 R2 | 16 | 18-10-2011 13:54 | |
Ошибка - Во время перезагрузки/выключения ошибка: Explorer.EXE - Ошибка приложения | Psyhopate | Microsoft Windows 2000/XP | 8 | 28-08-2010 00:27 | |
Непонятная ошибка virtualdub при просмотре либо конвертации DV файла-ошибка only в VD | illusionmgs | Видео и аудио: обработка и кодирование | 9 | 21-03-2009 14:47 | |
Delphi - Ошибка при компилировании на Delphi7 | Guest | Программирование и базы данных | 10 | 09-08-2004 17:00 |
|