 |
shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
HoRRoR RRC2008


Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вс Янв 07, 2007 7:33 pm Заголовок сообщения: Программирование |
|
|
Вот решил я C++ подучить, но после VB это *опа... Над for час мучался, что уж говорить об остальном...
Прошу тех, кто щарит в Си, плиз, скажите,
1. как изменять параметры объектов(Caption'ы и т.п.),
2. как присваивать текстовую переменную с другими переменными,
3. и что такое классы??
З.Ы. Заранее спасибо.
З.З.Ы. У меня MVC++ 6.0
З.З.З.Ы. Как только освою C++, займусь написанием человеческого дебаггера для Gens, в первую очередь сделаю возможность ставить бесконечно много бряков, причём не только по адресам, но и по условиям. |
|
Вернуться к началу |
|
 |
PEREVODчик

Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Вс Янв 07, 2007 10:05 pm Заголовок сообщения: |
|
|
HoRRoR писал(а): | Прошу тех, кто щарит в Си, плиз, скажите, |
Если что, могу помочь в конкретном написании кокого-либо действия, в теории C++ как-то не очень...давно не писал прог, начинаю подзабывать... |
|
Вернуться к началу |
|
 |
HoRRoR RRC2008


Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вс Янв 07, 2007 10:42 pm Заголовок сообщения: |
|
|
PEREVODчик писал(а): | Если что, могу помочь в конкретном написании кокого-либо действия, в теории C++ как-то не очень...давно не писал прог, начинаю подзабывать... |
Ну, до конкретных действий мне пока рано Написать бы хотя б обычный загрузчик таблицы в массив для практики.
На бейсике я бы так сделал(в целях экономии места самый примитивный способ):
Dim lin As String ' Строка
Dim flag(1 To 256) As Boolean ' Индикатор заполненных ячеек
Dim table(1 To 256) As String ' Таблица
Open <file> For Input As 1 ' Открываем файл таблицы
While Not EOF(1) ' Пока не конец файла
Line Input #1, lin ' Читаем строку
table(val("&H" & Left(lin, InStr(lin, "=") - 1)) = Right(lin, Len(lin) - InStr(lin, "=")
' ^^^ Берём всё до знака "=", конвертируем в Dec, присваеваем элементу массива с полученным номером всё, что правее "="
flag(val("&H" & left(lin, InStr(lin, "=")-1)) = True ' Отмечаем, что эта ячейка не пустая
Wend ' Повторяем
Close 1 ' Закрываем файл
Какой код на C++ будет аналогичен этому? |
|
Вернуться к началу |
|
 |
Shiru
Зарегистрирован: 25.10.2006 Сообщения: 295 Откуда: Russia, Moscow
|
Добавлено: Вс Янв 07, 2007 11:12 pm Заголовок сообщения: Re: Программирование |
|
|
HoRRoR писал(а): | 1. как изменять параметры объектов(Caption'ы и т.п.) |
Этот вопрос не относится к языку C/C++, как таковому. Параметры объектов будут изменяться в зависимости от реализации этих объектов, так что надо конкретизировать (MSVC - тоже не ответ, т.к. программы под Win можно писать на чистом WinAPI, можно на MFC, можно ещё кучей способов).
В общем случае, если объект является указателем на экземпляр класса - к его 'параметрам' ты будешь обращаться примерно как Object->Parameter=...
HoRRoR писал(а): | 2. как присваивать текстовую переменную с другими переменными |
В C/C++ нет 'текстовых' (строковых) переменных. Есть массивы, строка текста - это просто массив значений.
Например, char str[100] - массив из 100 элементов типа char (8-битное знаковое число), в который ты можешь запихать строку до 99 символов длиной (ещё 1 символ уйдёт на 0 в конце строки, признак конца строки). С подобными строками работают с помощью набора специальных функций. Например, занести строку в массив - strcpy(str,"твоя строка").
Строки также могут быть реализованы как объект, тогда присвоение им значений и элементарные операции, скорее всего, будут реализованы стандартными операторами - знаком 'равно', 'плюс', и т.д.
HoRRoR писал(а): | 3. и что такое классы?? |
Вот с этого вопроса и надо было начинать. И ещё с вопроса про указатели. Тема эта обширная, в двух словах не объяснишь - лучше всего купить хоть какую-нибудь книжку, и долго её курить. |
|
Вернуться к началу |
|
 |
HoRRoR RRC2008


Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Пн Янв 08, 2007 12:21 am Заголовок сообщения: |
|
|
Shiru писал(а): | В общем случае, если объект является указателем на экземпляр класса - к его 'параметрам' ты будешь обращаться примерно как Object->Parameter=... |
Эээ... А можно как чайнику объяснить, что такое "указатель на экземпляр класса"? В VB делается так: Object.Parameter=...
Shiru писал(а): | В C/C++ нет 'текстовых' (строковых) переменных. Есть массивы, строка текста - это просто массив значений.
Например, char str[100] - массив из 100 элементов типа char (8-битное знаковое число), в который ты можешь запихать строку до 99 символов длиной (ещё 1 символ уйдёт на 0 в конце строки, признак конца строки). С подобными строками работают с помощью набора специальных функций. Например, занести строку в массив - strcpy(str,"твоя строка").
Строки также могут быть реализованы как объект, тогда присвоение им значений и элементарные операции, скорее всего, будут реализованы стандартными операторами - знаком 'равно', 'плюс', и т.д. |
А как выводить, допустим, MessageBox так, чтобы засунуть среди текста переменные?
Shiru писал(а): | Вот с этого вопроса и надо было начинать. И ещё с вопроса про указатели. Тема эта обширная, в двух словах не объяснишь - лучше всего купить хоть какую-нибудь книжку, и долго её курить. |
Книжка врядли поможет, мне ещё ни один мануал не помогал, либо сам допирал, либо помогали.
А сколько времени надо убить, чтобы освоить азы C++? На VB дня два мне хватило. |
|
Вернуться к началу |
|
 |
Shiru
Зарегистрирован: 25.10.2006 Сообщения: 295 Откуда: Russia, Moscow
|
Добавлено: Пн Янв 08, 2007 12:42 am Заголовок сообщения: |
|
|
HoRRoR писал(а): | Эээ... А можно как чайнику объяснить, что такое "указатель на экземпляр класса"? |
Попробуй для начала покурить вот это:
http://www.codenet.ru/progr/visualc/vc/4.php (указатели)
http://www.programmersclub.ru/4 (классы)
HoRRoR писал(а): | А как выводить, допустим, MessageBox так, чтобы засунуть среди текста переменные? |
Можно воспользоваться стандартной функцией вывода в строку:
char str[256];//строка такой-то максимальной длины
int a,b; //переменные, которые ты хочешь вывести (предполагается, что где-то ниже ты им присвоишь значения)
sprintf(str,"Длина: %i Толщина: %i",a,b); //выводим в str строку
MessageBox(hWnd,str,"Message",MB_OK);//показываем message box
HoRRoR писал(а): | А сколько времени надо убить, чтобы освоить азы C++? На VB дня два мне хватило. |
Чтобы освоить азы C, мне когда-то хватило нескольких недель - на тот момент я знал только Sinclair Basic и ассемблер Z80 (на среднем уровне, несколько простых игрушек написал). А с тонкостями плюсов я до сих пор не особо разобрался, нет желания. На C/C++ одно и тоже можно писать множеством способов, знать всё 'от и до' необязательно. |
|
Вернуться к началу |
|
 |
HoRRoR RRC2008


Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Пн Янв 08, 2007 12:53 am Заголовок сообщения: |
|
|
Спасибо, щас попыхчу
Shiru писал(а): | sprintf(str,"Длина: %i Толщина: %i",a,b); //выводим в str строку |
Ага, значит это надо не в MsgBox делать Спасибо. А почему везде я вижу разные значения после %? То %s, то %d, то %i...
Shiru писал(а): | Чтобы освоить азы C, мне когда-то хватило нескольких недель - на тот момент я знал только Sinclair Basic и ассемблер Z80 (на среднем уровне, несколько простых игрушек написал). А с тонкостями плюсов я до сих пор не особо разобрался, нет желания. На C/C++ одно и тоже можно писать множеством способов, знать всё 'от и до' необязательно. |
Думаю, за месяц освою(азы). "От и до" я учить не собираюсь(даже в VB ещё половины не знаю), но самое необходимое выучу
Насколько реально встроить свой дебаггер в Gens и написать тайловый редактор? |
|
Вернуться к началу |
|
 |
Shiru
Зарегистрирован: 25.10.2006 Сообщения: 295 Откуда: Russia, Moscow
|
Добавлено: Пн Янв 08, 2007 1:48 am Заголовок сообщения: |
|
|
HoRRoR писал(а): | А почему везде я вижу разные значения после %? То %s, то %d, то %i... |
Это указания, в качестве какого типа рассматривать выводимую переменную. %s - строка, %d - десятичное число со знаком, %i - целое 32-битное число со знаком (int). Довольно подробно всё это описано здесь: http://ru.wikipedia.org/wiki/Printf
HoRRoR писал(а): | Насколько реально встроить свой дебаггер в Gens и написать тайловый редактор? |
Разбираться в чужом коде, тем более в таком большом проекте - очень неприятное дело. Но реально, конечно - для решения этих задач больше мороки будет с реализацией интерфейса средствами Windows, чем с кодом эмулятора. |
|
Вернуться к началу |
|
 |
PEREVODчик

Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Пн Янв 08, 2007 9:34 am Заголовок сообщения: |
|
|
HoRRoR писал(а): | А сколько времени надо убить, чтобы освоить азы C++? На VB дня два мне хватило. |
Смотря чем пользуешься. Я, например, пользуюсь Borland C++ Builder 6.0-легко разработать интерфейс Windows,не надо над этим зацикливаться - нужно только написать сам код программы.
Если ты пользуешься не Builder'ом, то придеться убить много времени. |
|
Вернуться к началу |
|
 |
Максут Гость
|
Добавлено: Пн Янв 08, 2007 10:46 am Заголовок сообщения: |
|
|
Тоже Билдером пользуюсь, тоже начинающий.
Советую брать уже Borland Builder 2006 - он новее, чем в 6.
Из книг советую:
- С++ Джесс Либерти. С++ освой самостоятельно - чистый С++.
- Кент Рейсфорд и Кен Хендерсон, освой Билдер за 21 день - уже на примере 6 Билдера, WinApi. |
|
Вернуться к началу |
|
 |
HoRRoR RRC2008


Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Ср Янв 10, 2007 3:20 pm Заголовок сообщения: |
|
|
Что лучше - Borland Builder или Visual C++? |
|
Вернуться к началу |
|
 |
Shiru
Зарегистрирован: 25.10.2006 Сообщения: 295 Откуда: Russia, Moscow
|
Добавлено: Ср Янв 10, 2007 3:39 pm Заголовок сообщения: |
|
|
Это принципиально разные инструменты. Builder - RAD-среда, ориентированная в основном на использование VCL; MSVC - универсальный инструмент. Если нужно быстро набросать программу для win с большим количеством контролов, работой со всякими БД, и прочим - то проще использовать Builder. Если нужно, скажем, написать эмулятор - то MSVC. Без VCL (скажем, на WinAPI) на Builder'е писать смысла нет, т.к. никаких преимуществ у него нет (компилятор у него хуже, чем у MSVC). |
|
Вернуться к началу |
|
 |
HoRRoR RRC2008


Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Ср Янв 10, 2007 3:44 pm Заголовок сообщения: |
|
|
Shiru писал(а): | Это принципиально разные инструменты. Builder - RAD-среда, ориентированная в основном на использование VCL; MSVC - универсальный инструмент. Если нужно быстро набросать программу для win с большим количеством контролов, работой со всякими БД, и прочим - то проще использовать Builder. Если нужно, скажем, написать эмулятор - то MSVC. Без VCL (скажем, на WinAPI) на Builder'е писать смысла нет, т.к. никаких преимуществ у него нет (компилятор у него хуже, чем у MSVC). |
Ясно, спасибо. Значит использую MSVC, а набросать и на VB без особых усилий смогу  |
|
Вернуться к началу |
|
 |
LG.BALUKATION

Зарегистрирован: 05.08.2006 Сообщения: 141 Откуда: Saint-Patersburg
|
Добавлено: Вс Янв 14, 2007 11:40 am Заголовок сообщения: |
|
|
HoRRoR писал(а): | Что лучше - Borland Builder или Visual C++? | MinGW =)
Вроде как основное их отличие уже описали. Но творение мелкомягких мне тоже не очень нравится... Во-первых, оно начиная с 7 версии (2002, 2003) завязано на .Net и оттачивается уже больше под неё, чем под "простые винды". VisualStudio 2005 вообще на моём далеко не самом слабрм компе как-то не очень шустро работала. Во-вторых это ИМХО очень перегруженная седа. Быть может для корпоация с очень большими пректами оно и хорошо, но для написания не больших прог там слишком много лишних наворотов.
Так что мой выбор на данный момент - GCC и его порт под винды (MinGW). Ещё можно глянуть на OpenWatcom, но там своеобразная IDE и сам проект кажется стОит на месте - новые версии выходят, но вот насколько они новы? Такое ощущение, что народ просто вылизывает старые сырцы. _________________ Zwei Drachen betrachten einander |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|