![]() |
|
|
![]()
|
|
| Ap0k |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 9.1.2005 Где: г.Ижевск Репутация: нет Всего: нет |
Здравствуйте, с чего рекомендуете начать изучение этго языка и пакета Microsoft Visual Studio 2005.
Заранее спасибо. |
|||
|
||||
| useless |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 18.5.2004 Репутация: нет Всего: 1 |
Я бы сначала в книжный магазин сходил. Правда около 1000 руб. с собой брать надо, если хочешь хорошие книжки приобрести. Это лично мой подход.
--------------------
Лучше день потерять, потом за 5 минут долететь !!! |
|||
|
||||
| Ap0k |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 9.1.2005 Где: г.Ижевск Репутация: нет Всего: нет |
Ходил уже......нету там =(
|
|||
|
||||
| Spieler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
Взял Microsoft Visual Studio 2005 решил зделать небольшую програмку(калькулятор) чисто для обучения. И столкнулся с проблемой преобразования с String (textbox) в переменную типа int
и обратно. пробовал itoa,atoi но эти функции работают только с char , а со Srting неполучается. Если кто нибуть знает напишите. Большое спасибо |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: нет Всего: 26 |
Spieler,дык поля зачем Stringami обьявлять.Обьявляй их переменыые типа int.
Ap0k,а ты что вообще знаешь??? Там сам C++ или уже даже VC++??? -------------------- Жизнь - печальная штука. |
|||
|
||||
| Spieler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
nikitao,[b] я вообще-то ничего Stringami не обьявляю, я хочу считать с TextBox.Name число
и соответсвено преобразовать в int что-бы работать как с числом. Может я неправельно понял но TextBox.Name уже является типом String. |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: нет Всего: 26 |
Spieler,погоди ты вообще в VC++ или в VB или VC#???
VC++ это тебе не Delphi или ему подобные,тут нельзя вот так брать и считыват TextBox.Name -------------------- Жизнь - печальная штука. |
|||
|
||||
| Spieler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
Я в VC++. А есть какое нибудь решение, или альтернатива?
|
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: нет Всего: 26 |
Spieler
TextBox это в смысле Edit Control? Короче,ты делал такие действия: Нанес Edit на форму-> нажал првой кнопкой по нему-> выбрал "Add Variable? -------------------- Жизнь - печальная штука. |
|||
|
||||
| Spieler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
В VC++ 8 текстовое поле называется TextBox.
К примеру я просто наношу три таких поля(и кнопку), при нажатии на кнопку хочу чтобы в третем поле появилась сумма двух первых. Однако для этого надо функцию преобразования String(тип TextBox ) в int (чтобы просумировать) . |
|||
|
||||
| Spieler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
Нашол!!!
методов для преобразований типов. Например : Convert::ToString(double); // для преобразования в строку Convert::ToDouble(String); // для преобразования в число(дробное) |
|||
|
||||
| Штык |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 9.5.2005 Где: Москоу Репутация: нет Всего: 1 |
угумс советую книжку хорошую какую нить приобрести..а там уже дело пойдеть..многие ответы на вопросы я так полагаю ты туть и найдешь)
--------------------
Lachetes familieresQui nous rendent guerrieres |
|||
|
||||
| Spieler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
Такой вопрос! У меня есть рисунок(Bitmap) который при нажатии с клавиатуры перемещается по форме (вверх,влево,...). Я исползую событие KeyPress(). НО клавиши реагируют взаимоисключая друг друга, А мне надо чтоб при нажатии двух клавиш происходило и два соответствующих действия (одновременно). Если кто знает чо нибуть по этому поводу поделитесь мыслями.
|
|||
|
||||
| JoyEx |
|
|||
|
Дядя ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 21.6.2005 Где: Москва, РФ Репутация: 5 Всего: 12 |
Ну тогда нада создать два потока при нажатии 2-х клафишь
только не спрашиввай меня как это сделать -------------------- Если ты уже никого не боишься, значит ты самый страшный |
|||
|
||||
| Spieler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
Подскажите как в Visual С++ 8 подключать библиотеки чтоб проги шли на других компах
|
|||
|
||||
| Enjoy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 4.2.2006 Репутация: нет Всего: нет |
Чего нету? Денег нету или книжки в магазине??? Когда я в последний раз был в книжном магазине в провинциальном городе, то там было как минимум 100(!!!) книжек по С++!!! А если серьёзно, то лучший вариант для тебя - это выучить книгу Дейтелов по С++. Удачи! |
|||
|
||||
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: 3 Всего: 4 |
|
|||
|
||||
| secado |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 5.2.2006 Репутация: нет Всего: 3 |
Начну с самого неприятного, старые char функции не работают, в массе своей. Вообще. Говорю об этом со стопроцентной уверенностью, потому что не далее как 10 минут назад, прекратил расхлебывать char функции в библиотеке CRT (стандарт С++). В результате: если хотите
отсутствие проблем с строками в windows программах - используйте только wchar_t тип для строк (для не MFC-данных), для MFC-данных - только класс CString и никаких LPCTSTR, LPSTR, LPWSTR, PCSTR, XCHAR... и прочего бреда. У меня от LPCTSTR уже нервный тик появился, как только его вижу - сразу же заменяю, если константа на _T(" "), если переменная - на CString. И блин, работает! Далее, большая часть, строчных функций (не только со строками, но и файловых) - переписана с защитой от переполнения буфера (к именам функций добавлены _s), в основном список параметров только дополнился явным указанием длины буфера, вроде бы и все, но Visual Studio настойчиво рекомендует использовать именно их. И это еще не все, windows-программистам будет "приятно" узнать, что есть еще одна группа строчных функций: та, которая описана в StrSafe.h (это WinAPI функции) и которые тоже переопределяют, как более современные, старые char функции. Хух! Почему я об этом рассказываю? Будучи студентом одного из ВУЗов по специальности программист, я столкнулся с отсутствием тотальности в очень многих книгах по программированию (на С++ в частности). Именно тотальности - т.е. описанию всех(!) возможностей, которые предоставляет тот или иной аспект языка. И поскольку ни в литературе ни в Internet, я не нашел ничего подобного, я решил сделать это сам. Взял MSDN 2005 JAN, MSDN 2K5 release и начал его штудировать, каждую статью, и писать маленький тренировочный проект по каждой возможности. Все для достижения работающего (всегда!) кода. Узнал я конечно, очень много интересного. Например, в некоторых демонстрационных примерах в CRT библиотеке преднамеренно (я подчеркиваю, преднамеренно!!) оставлены переменные с именами new, template (я подозреваю, что Microsoft специально это делает для проверки тех, кто изучает MSDN). Да, и напоследок. Вот список функций, которые подхватывает класс CString (не мучайтесь с template СString, CSimpleString, CStringT и т.д.). // CString a; // a.AllocSysString() функция распределения памяти для автоматизации объектов в COM и ATL // a.Append(PCXSTR pszSrc) добавление строки к строке // a.AppendChar(XCHAR ch) добавление символа к строке // a.AppendFormat(UINT nFormatID,...) добавление форматированной строки из ресурсов к строке // a.AppendFormat(PCXSTR pszFormat,...) добавление форматированной строки к строке // a.AppendFormatV(PCXSTR pszFormat, va_list args) использует RTTI функции списка аргументов (не применять) // a.CharToOemA(); // a.CheckImplicitLoad(const void *pv); // a.CloneData(CStringData *pData); // a.Collate(PCXSTR psz); следующие две функции сравнивают две строки с учетом специфики определенных языков // a.CollateNoCase(PCXSTR psz); следующие две функции сравнивают две строки с учетом специфики определенных языков // s.Compare(PCXSTR psz); сравенение строки с учетом регистра символов // s.CompareNoCase(PCXSTR psz); сравнение строки без учета регистра символов // a.Concatenate(&strResult,PCXSTR psz1, int nLength1,PCXSTR psz2, int nLength2); // ATL функция // a.Construct(*pString); // a.CopyChars(XCHAR *pchDest,XCHAR *pchSrx, int nChars); копирование символов из одного буфера в другой (копируются char объекты), сами буфера не должны перекрываться в памяти // a.CopyCharsOverlapped(XCHAR *pchDest,XCHAR *pchSrx, int nChars); то же самое, но буфера могут частично перекрываться в памяти // a.Delete(int iIndex, int nCount); удаление количества символов, начиная с индекса // a.Empty(); очистка строки // a.Find(XCHAR ch,int iStart); поиск символа, начиная с начала строки // a.FindOneOf(PCXSTR pszCharSet) нахождение первого вхождения любого из символов, перечисленных в строке // a.Fork(int nLength); // s.Format(PCXSTR pszFormat,...); форматирование строки указанными командами форматирования (обычный вариант) // s.Format(UINT nFormatID,...); то же самое форматирование, но строкой, находящийся в ресурсах // s.FormatMessageV(PCXSTR pszFormat, va_list *pArgList); эти команды используют список аргументов из RTTI // s.FormatMessageW(PCXSTR pszFormat,...); форматирование сообщения (команды форматирования указаны) // s.FormatMessageW(UINT nFormatID,...); форматирование сообщения строкой из ресурсов // s.FormatV(PCXSTR pszFormat, va_list args); эти команды используют список аргументов из RTTI // a.FreeExtra(); освобождение предварительно распределенной памяти для строки, чей символ конца находится раньше чем длина строки // a.GetAllocLength(); возврат размера выделенной памяти под объект строки // a.GetAt(int iChar); извлечение сисвола указанного номера из строки, нумерация с 0 // a.GetBuffer(int nMinBufferLength); возврат строки типа char * (фиксация размера строки и преобразование к обычным строчным функциям) // a.GetBufferSetLength(int nLength); // a.GetData(); данная компонентная функция обращается к внутренним системным и private объектам внутри класса, вне его не применять // a.GetEnvironmentVariableA(PCXSTR pszVar); установка для данного объекта имени зарегистрированной переменной в системе // a.GetLength(); получение длины строки // a.GetManager(); получение указателя на менеджер распределения памяти для ATL-объектов // a.GetString(); возврат строки (его нужно употреблять вместо перегруженных операций // a.Insert(int iIndex, XCHAR ch); вставка указанного символа после указанного номера символа в строке // a.Insert(int iIndex, PCXSTR psz); вставка строки после указанного номера символа в строке // a.IsEmpty(); проверка строка пустая или нет // s.Left(int iCount); извлечение слева (с начала строки) указанное число символов // a.LoadStringA(UINT nID); данная функция загружает строку из ресурсной таблицы // a.LoadStringA(HINSTANCE hInstance, UINT nID); // a.LoadStringA(HINSTANCE hInstance, UINT nID, WORD wLanguageID); // a.LockBuffer(); функция блокировки доступа к строке // a.MakeLower(); функции приведения к нижнему регистру // a.MakeReverse(); функция смены регистра // a.MakeUpper(); функция приведения к верхнему регистру // s.Mid(int iFirst, int iCount); извлечение подстроки, начиная с номера символа и количество символов // s.Mid(int iFirst); извлечение подстроки, начиная с номера символа и до конца // a.OemToCharA(); // a.Preallocate(int nLength); резервирование памяти под размещение строки // a.PrepareWrite(int nLength); // a.PrepareWrite2(int nLength); // a.Reallocate(int nLength); перераспределение нового объема памяти для уже существующей строки // a.ReleaseBuffer(int nNewLength); преобразование строки из char * обратно в динамическую строку // a.ReleaseBufferSetLength(int nNewLength); то же самое, но указывается длина строки, которая будет установлена (если она меньше значащих символов в строке, строка будет усечена, если больше - строка будет содержать пустые символы) // a.Remove(XCHAR chRemove); удаление из строки всех вхлждений указанного символа // a.Replace(XCHAR chOld, XCHAR chNew); замена всех вхождений одного символа на другой // a.Replace(PCXSTR pszOld, PCXSTR pszNew); замена всех вхождений одной строки на другую // a.ReverseFind(XCHAR ch); поиск указанного символа, начиная с конца строки // a.Right(int iCount); извлечение справа (с конца строки) указанное число символов // a.SetAt(int iChar,XCHAR ch); установка символа указанного номера в строке, нумерация с 0 // a.SetLength(int nLength); установка длины строки для ATL-объектов // a.SetManager(TCHAR *pStringMgr); ATL функция - установка менеджера для распределения памяти объектам // a.SetString(PCXSTR pszSrc); запись в значение переменной класса нового значения строки, рекомендуется вместо оператора присваивания // a.SetString(PCXSTR pszSrc, int nLength); запись значения строки вместе с указанием длины, используется для переменных с неизвестной длиной строки (для обрезки до нужного размера) // a.SetSysString(BSTR *pbstr); размещение и установки строки для OLE объектов // a.StringLength(char *psz); получение длины для оюъектов ATL-строки простых символов (или указанного типа?) без конечного 0 // a.StringLength(wchar_t *psz); // a.SpanExcluding(PCXSTR pszCharSet); извлечение только тех символов из строки, которые перечислены во второй // a.SpanIncluding(PCXSTR pszCharSet); извлечение всех символов из строки, которые не перечислены во второй // a.ThrowMemoryException(); возбуждение строчного исключения // a.Tokenize(PCXSTR pszTokens, int &iStart); парсинг строки // s.Trim(); во всей строке удаляются пробелы // s.Trim(XCHAR chTarget); во всей строке удаляется указанный символ // s.Trim(PCXSTR pszTargets); во всей строке удаляются символы, перечисленные в строке // s.TrimLeft(); то же самое, но только слева (с начала строки) // s.TrimLeft(XCHAR chTarget); // s.TrimLeft(PCXSTR pszTargets); // s.TrimRight(); то же самое, но только справа (с конца строки) // s.TrimRight(XCHAR chTarget); // s.TrimRight(PCXSTR pszTargets); // a.Truncate(int nNewLength); усечение строки до заданной длины начиная с первого символа (индекс 0) // a.UnlockBuffer(); разблокировка доступа к строке //оставшиеся функции Бог его знает, что они обозначают |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |