В c++ нет встроенного гуя,тебе нужно взять какую-нибудь сторонню библеотеку: mfc,winforms,qt.. Если под винду подойдет winforms.Создавай в студии проект Windows Form Applications,кинь на форму кнопку и текст бокс.В обработчике нажатия на кнопку пиши что нужно сделать.Текст из текст бокса находится в this->textBox1->Text. p.s. еще вариант на винапи написать.
в проге выводятся три значения, я кинул на форму тексбокс, кнопку и 3 лейбла вопрос номер рас: куда вписывать код, создавать есче один файл СРР ? 2) как прасвоить выводимые данные к лейблам? 3) как считать данные из текстбокса ?
this->label1->Text = "blabla"; Если нужно не текст присвоить юзай метод toString() - this->label1->Text = n.ToString(); System::String s = this->textBox1->Text;
как прочитать значение из текстбокса, выполнить над ним какуюнить операцию и вывести результат в лейбл, если можно то дайте самы простой исходник
короче есть код (консоль) нужно сделать граф. интерфейс. VS 2008. если есть то плиз пример, а есче лучше пример на основе этого кода Code: #include <stdio.h> #include <stdlib.h> int main(void) { int i; char buffer[500]; printf("Enter a number: "); scanf("%o", &i); itoa(i,buffer,10); printf("decimal: %s\n", buffer); itoa(i,buffer,16); printf("hexadecimal: %s\n", buffer); itoa(i, buffer, 2); printf("binary: %s\n", buffer); return 0; } т.е. для начала нужно заменить вот это: Code: printf("Enter a number: "); scanf("%o", &i); но тут уже нужно взять то что написано в текстбоксе и дальше выполнять действия, вопрос, как это сделать ?
Всем привет! Недавно начал изучать C++, возник такой вопрос: #include <iostream> #include <windows.h> using namespace std; int main(){ char *szMess = new char; szMess = "Hello World!"; cout << szMess; Sleep(3000); return 0; } Как это возможно? Я так понимаю здесь объявляется указатель szMess на переменную типа char и определяется адресом выделенным под переменную char (new char). Ну это ладно....но как потом он проглотил присваивание указателю строки символов, дык еще и вывел их оператором cout << szMess; Я наверное чет не так понимаю, но мне кажется должно быть так char *szMess = new char; *szMess = "Hello World!"; cout << *szMess; Но на такую запись он ругается! Объясните новичку че к чему. Заранее спасибо.
Code: char *szMess = new char; //нормально, делаем указатель *szMess = "Hello World!"; //тут этот укзаатель начинает указывать на область памяти по адресу "Hell", т.к. указатель - это DWORD=4 байта. Видимо, мы хотим достать демонов из ада cout << *szMess; //а вот тут-то и ошибка. чтобы достать демона, надо * убрать. Тогда мы призовем всех демонов до первого встретившегося люцифера (нулевого байта) //Хотя может ты просто хочешь спалить местоположение врат ада
итак. вариант номер один. эквивалентен записи Code: cout << "Hello World!"; ибо ты выделяешь только 1 байт, что явно не достаточно для строки длиной 13 байт. ты благополучно затираешь выделенный указатель указателем строки хелловорлд, тем самым создавая утечку памяти. по сути ты просто выводишь используя указатель на хуллоуворлд. вариант два. опять мало байтов. выделен только один. сделав * ты получил доступ к байту, но пытаешься запихнуть туда строку. правильный вариант этой строки *szMess="Hello World!"[0]; Но это опять же не верно, если ты хочешь засунуть туда строку Правильный вариант Code: #define HELLO_MSG "Hello World!" int main() { char *szMess; szMess= new char [strlen(HELLO_MSG) + 1]; strcpy(szMess, HELLO_MSG); cout << szMess; return 1; }
to Kaimi Спасиб....я все понял....просто такой некорректный пример видел в одной статье... после Object Pascal совсем мозг не хочет принимать такие ньюансы работы с памятью.....я уж привык, что string это строка и пиши туда че хочешь и сколько влезет. to Fatal1ex спасиб за перевод конечно но символ взятия адреса & , а *-разименовывание. to Ra$kal Очень подробный содержательный ответ спасибо. И все таки как взять строку из textBox если заранее ее длина неизвестна? И вообще кто-нибудь может объяснить мне разницу между System::String ^ , string(из инклуда <string.h>) char * и char! Это меня уже 3 день в ступор вводит.... И че это за оператор подозрительный ^; не нравится он мне
Да для его задачи подойдет почти любой язык, но дело не в этом. Я считаю что не стоит сразу привязываться к определенному фреймворку и к бесперспективной надстройке над с++. Лучше будет сначала выучить нативный синтаксис языка + средства сторонних библиотек. Вообще лучше уж сразу писать на C# чем на managed c++. В с++ не красиво юзать char* строки, уже лучше воспользоваться STL классом string System::String это класс с .Net'a, а не нативный, как я указал выше используй std string который входит в стандартную библиотеку и являеться кроссплатформенным классом.
Дайте пожалуйста мануал по С++ функциям для файловой системы. Тоесть ls всех файлов/папок, нахождение пути к системным папкам, нахождения пути к запущеному файлу и т д. С меня плюсы. Спасибо
Таак... Пытаюсь скомпилить с -static , но чото не идет дело. В pkg-config указываю параметр --static. Т.е. запрос такой: pkg-config --libs-only-L --static --cflags gtkmm-2.4 В параметры g++ добавил -static. Добавил -lgtkmm-2.4.dll ( .dll это только название, на самоме деле gtkmm-2.4.dll.a) и др. с библиотеки GTKmm 2.4. Компиляция вроде все норм завершилась, но .ехе весит пол метра и все равно просит библиотеки ;{
C:\GTK\bin\libgdk-win32-2.0-0.dll C:\GTK\bin\libpangomm-1.4-1.dll C:\GTK\bin\zlib1.dll C:\cygwin\bin\cygwin1.dll - эта пофиг. C:\GTK\bin\libgtk-win32-2.0-0.dll C:\GTK\bin\libcairomm-1.0-1.dll C:\GTK\bin\libatk-1.0-0.dll C:\GTK\bin\libgobject-2.0-0.dll C:\GTK\bin\libgdk_pixbuf-2.0-0.dll C:\GTK\bin\libpango-1.0-0.dll C:\GTK\bin\libglibmm-2.4-1.dll C:\GTK\bin\libglib-2.0-0.dll C:\GTK\bin\libcairo-2.dll C:\GTK\bin\libpng12-0.dll C:\GTK\bin\libgdkmm-2.4-1.dll C:\GTK\bin\libsigc-2.0-0.dll C:\GTK\bin\libpangowin32-1.0-0.dll C:\GTK\bin\libgiomm-2.4-1.dll C:\GTK\bin\libgtkmm-2.4-1.dll C:\GTK\bin\libpangocairo-1.0-0.dll C:\GTK\bin\libgio-2.0-0.dll C:\GTK\bin\libgmodule-2.0-0.dll C:\GTK\bin\libatkmm-1.6-1.dll Как я понимаю вы это просили? Ну избавиться я хочу от них, т.е. статически слинковать. Я понимаю, что так все статически слинкуется, вообще все, даже те , что уже есть в системе, но у меня даже так не получается.
Почитай сначала это Не вижу смысла повторять то, что уже написано, и не раз написано. Про String^ забудь. Это не чистый с++. Помесь с++ и дотнета. Оно тебе все равно рано.