Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 13:05   #1
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию Лафоре, консольная графика

Гуглил, проблема не только у меня, но решения не нашел.
VC++ 2010, при компилировании примеров из книги Р. Лафоре с консольной графикой ошибки

msoftcon.cpp(17): error C2664: 'CreateFileW' : cannot convert parameter 1 from 'const char [8]' to 'LPCWSTR'

msoftcon.cpp(79): error C2065: 'j' : undeclared identifier


http://pastebin.com/Eu6jPjKZ (msoftcon.cpp , не помещается сюда, номера строк сохранены)

Код:
// circstrc.cpp
// circles as graphics objects
#include "msoftcon.h"         // for graphics functions
////////////////////////////////////////////////////////////////
struct circle                 //graphics circle
   {
   int xCo, yCo;              //coordinates of center
   int radius;                
   color fillcolor;           //color
   fstyle fillstyle;          //fill pattern
   };
////////////////////////////////////////////////////////////////
void circ_draw(circle c)             
   {
   set_color(c.fillcolor);               //set color
   set_fill_style(c.fillstyle);          //set fill pattern
   draw_circle(c.xCo, c.yCo, c.radius);  //draw solid circle            
   }
//--------------------------------------------------------------
int main()
   {
   init_graphics();           //initialize graphics system
                              //create circles
   circle c1 = { 15, 7, 5, cBLUE, X_FILL };
   circle c2 = { 41, 12, 7, cRED, O_FILL }; 
   circle c3 = { 65, 18, 4, cGREEN, MEDIUM_FILL };

   circ_draw(c1);             //draw circles
   circ_draw(c2);
   circ_draw(c3);
   set_cursor_pos(1, 25);     //cursor to lower left corner
   return 0;
   }
Вот так выглядит проект (на всякий случай даже создал новый)


msoftcon.h в 1 папке с circstrc.cpp
Код:
//msoftcon.h
//declarations for Lafore's console graphics functions
//uses Window's console functions

#ifndef _INC_WCONSOLE    //don't let this file be included
#define _INC_WCONSOLE    //twice in the same source file

#include <windows.h>     //for Windows console functions
#include <conio.h>       //for kbhit(), getche()
#include <math.h>        //for sin, cos

enum fstyle { SOLID_FILL, X_FILL,      O_FILL, 
              LIGHT_FILL, MEDIUM_FILL, DARK_FILL };

enum color {
   cBLACK=0,     cDARK_BLUE=1,    cDARK_GREEN=2, cDARK_CYAN=3, 
   cDARK_RED=4,  cDARK_MAGENTA=5, cBROWN=6,      cLIGHT_GRAY=7,
   cDARK_GRAY=8, cBLUE=9,         cGREEN=10,     cCYAN=11, 
   cRED=12,      cMAGENTA=13,     cYELLOW=14,    cWHITE=15 };
//--------------------------------------------------------------
void init_graphics();
void set_color(color fg, color bg = cBLACK);
void set_cursor_pos(int x, int y);
void clear_screen();
void wait(int milliseconds);
void clear_line();
void draw_rectangle(int left, int top, int right, int bottom);                    
void draw_circle(int x, int y, int rad);
void draw_line(int x1, int y1, int x2, int y2);
void draw_pyramid(int x1, int y1, int height);
void set_fill_style(fstyle);
#endif /* _INC_WCONSOLE */
Сори, если не там тему создал.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 03.04.2011 в 13:10.
Alex11223 вне форума
Старый 03.04.2011, 13:28   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

видимо не правильно искали.
http://programmersforum.ru/showthrea...hlight=Unicode
вот тема, который раз на нее ссылаюсь.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 03.04.2011, 13:39   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Про юникод нашел, но его отключение не помогло. Вроде же тут это изменяется?


1>e:\лафоре_oop_v_cpp\msoftcon\msof tcon.cpp(55): warning C4996: 'putch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _putch. See online help for details.
1> e:\microsoft visual studio 10.0\vc\include\conio.h(135) : see declaration of 'putch'
1>e:\лафоре_oop_v_cpp\msoftcon\msof tcon.cpp(68): warning C4996: 'cputs': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _cputs. See online help for details.
1> e:\microsoft visual studio 10.0\vc\include\conio.h(122) : see declaration of 'cputs'
1>e:\лафоре_oop_v_cpp\msoftcon\msof tcon.cpp(69): warning C4996: 'cputs': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _cputs. See online help for details.
1> e:\microsoft visual studio 10.0\vc\include\conio.h(122) : see declaration of 'cputs'
1>e:\лафоре_oop_v_cpp\msoftcon\msof tcon.cpp(79): error C2065: 'j' : undeclared identifier
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума
Старый 03.04.2011, 13:52   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да там,
а ошибка у вас
Код:
1>e:\лафоре_oop_v_cpp\msoftcon\msof tcon.cpp(79): error C2065: 'j' : undeclared identifier
уже не связанная с юникодом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 03.04.2011, 14:00   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А с чем она связана? Вроде ж код из довольно популярной книги, не могли же просто забыть создать переменную j. Да и тогда в гугле было бы намного больше инфы по этому вопросу, а не у 2 человек.

Вся функция. Строка, на которую указывает компилятор выделена.

Код:
//--------------------------------------------------------------
void draw_rectangle(int left, int top, int right, int bottom) 
   {
   char temp[80];
   int width = right - left + 1;

   for(int j=0; j<width; j++)      //string of squares
      temp[j] = fill_char;   
   temp[j] = 0;                    //null

   for(int y=top; y<=bottom; y++)  //stack of strings 
      {
      set_cursor_pos(left, y);
      cputs(temp);
      }
   }
//--------------------------------------------------------------
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 03.04.2011 в 14:03.
Alex11223 вне форума
Старый 03.04.2011, 14:04   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
for(int j=0; j<width; j++)      //string of squares
      temp[j] = fill_char;  //здесь j есть. 
   temp[j] = 0;                    //а вот тут уже нету
видимо код по старой версии VC++ 6.0, там переменные не были локальные для цикла.
так что обьявите её вне цикла.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 04.07.2014, 18:58   #7
PataNATOm
Новичок
Джуниор
 
Регистрация: 04.07.2014
Сообщений: 2
По умолчанию

А причмна ошибки элементарна: инструкции, выполняющиеся в цикле for, заключаются в ФИГУРНЫЕ СКОБКИ {} - а тут их нет!
PataNATOm вне форума
Старый 04.07.2014, 19:17   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Думается, за 3 года наверно разобрались что к чему...
waleri вне форума
Старый 05.07.2014, 15:42   #9
PataNATOm
Новичок
Джуниор
 
Регистрация: 04.07.2014
Сообщений: 2
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Думается, за 3 года наверно разобрались что к чему...
А другие, кто набредёт на эту тему? Я считаю, не лишне расставить точки над i.
PataNATOm вне форума
Старый 05.07.2014, 16:20   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от PataNATOm Посмотреть сообщение
А другие, кто набредёт на эту тему? Я считаю, не лишне расставить точки над i.
некрофилия дурно пахнет.

и далее вы ошиблись, фигурные скобки не обязательны, а в данном случае они сделают код иным.
так все ровно так как я и написал давно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консольная графика... Sota C++ Builder 3 01.04.2010 05:48
Консольная графика NoHeart Общие вопросы C/C++ 1 17.01.2010 20:25
Роберт Лафоре. Объектно-ориентированное программирование на c++ blackbanny Обсуждение статей 2 11.11.2009 10:08
Консольная графика в С++ xbobikx Общие вопросы C/C++ 1 07.07.2009 00:42