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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2008, 15:51   #1
sum42
Пользователь
 
Регистрация: 15.11.2008
Сообщений: 33
По умолчанию не получается вывести текст

Здравствуйте!
У меня такая проблема:
создал проект Visual C++ в Visual Studio 2008 (по шаблону "приложение Windows forms"),

назвал его hdd.
Ничего не менял в проекте, попробовал просто вывести на экран hello.
Вот код
Код:
// hdd.cpp: главный файл проекта.
#include "stdafx.h"
#include "Form1.h"

using namespace hdd;

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
	// Включение визуальных эффектов Windows XP до создания каких-либо элементов 

управления
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false); 

	// Создание главного окна и его запуск
	Application::Run(gcnew Form1());

cout << "hello";
	
	return 0;
}
компилятор выводит ошибку о том, что cout - необъявленный идентификатор.
я пробовал подключать в код

Код:
#include <iostream>
using namespace std;
но ничего не выходит(((
я пишу
Код:
cout << "hello";
там где надо или нет?
подскажите пожалуйста как банально вывести hello.

еще такой вопрос: правильно ли я выбрал шаблон для создания программы с api-функциями?(нужна

прога, которая считывает параметры жесткого диска, при нажатии на кнопку, и выводит их в

заданные текстбоксы или лэйблы;
в конечном итоге должен получиться один exe-файл).

еще сразу хочу спросить как вывести какой-нибудь текст в textBox или label?

Выручите пожалуйста
sum42 вне форума Ответить с цитированием
Старый 16.11.2008, 21:33   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Вам надо создавать Empty Project и писать ВСЕ вручную(ну это пока для вас, как я понимаю, слишком трудно будет). Лучше создать MFC Application(диалоговое). cout тут уже работать не будет.
Вывод на экран. У текстбокса или лэйбла должен быть какой-то ID (в Properties поставите). Потом пишите GetDlgItem(тут передаете ID вашего текстбокса(или лэйбла))->SetWindowText(тут пишите то, что в нем должно выводиться);
Допустим, у текстбокса ID IDC_EDIT1. Чтобы по щелчку кнопки в него выводился текст, в обработчике кнопки пишем:
Код:
     GetDlgItem(IDC_EDIT1)->SetWindowText("hello");
То же самое для лэйбла(да и вообще для любых других элементов управления). Это не единственный способ. Еще можно выводить текст через привязанную к элементу управления переменную.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 16.11.2008, 22:57   #3
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

sum42, вас понесло совершенно не туда
Во-первых, выбирая "приложение Windows forms" вы уже будете программировать не на С++, а на C++/CLI под платформу .NET
Во-вторых, для начала не лезьте в программирование с оконным интерфейсом, разберитесь сначала с консолью. При создании проекта выберите консольный проект, и укажите его как empty project. Потом надо будет только добавить руками .cpp файл и писать в нем уже весь код.

ACE Valery, мне кажется, что начинать осваивать новичку С++, параллельно используя для этого MFC... мягко говоря... ну не лучшая идея...
filosof_x86 вне форума Ответить с цитированием
Старый 17.11.2008, 19:47   #4
sum42
Пользователь
 
Регистрация: 15.11.2008
Сообщений: 33
По умолчанию

создал все в том же проекте лэйбл с именем label1
(я так понимаю это и есть ID) и кнопку.
вод код обработчика кнопки(он записывается в файле form1.h в самом низу)
Код:
#pragma endregion
	private: System::Void button1_Click(System::Object^ 
 sender, System::EventArgs^  e) 

{

			this->label1->Text="hello";

			 }
при нажатии на кнопку выводится hello как я и хотел.
а вариант
Код:
GetDlgItem(label1)->SetWindowText("hello");
не прокатил, выдается две ошибки, но все равно спасибо.

по поводу пректов: разве я не смогу использовать api-функции
в этом проекте, подключив библиотеку "windows.h" в файл stdafx.h?

теперь передо мной стоит задача посложнее:
у меня есть вот такой код:
Код:
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{

char NameBuffer[MAX_PATH];
char SysNameBuffer[MAX_PATH];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;

if (GetVolumeInformation("C:\\",NameBuffer, sizeof(NameBuffer),
&VSNumber,&MCLength,&FileSF,SysNameBuffer,sizeof(SysNameBuffer)))
{
 cout <<  NameBuffer << endl;
 cout <<  SysNameBuffer << endl;
 cout <<  VSNumber << endl;
}

}
эта прога определяет некоторые параметры жесткого диска.
описание ф-ции GetVolumeInformation у меня есть. осталось только вывести
эти параметры в заданные лэйблы.
Не подскажите как это можно сделать?

Я так понимаю, что код с api-функцией нужно писать в главном файле
проекта hdd.cpp. там же нужно присвоить значения параметров HDD
некоторым переменным, например:

Код:
var=NameBuffer;
и в файле form1.h записать:
Код:
this->label1->Text=var;
я правильно рассуждаю или нет?
sum42 вне форума Ответить с цитированием
Старый 17.11.2008, 20:27   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Товарищ, вы хоть немного знакомы с С++? А то судя по рассуждениям - не очень.
MaTBeu вне форума Ответить с цитированием
Старый 18.11.2008, 16:11   #6
sum42
Пользователь
 
Регистрация: 15.11.2008
Сообщений: 33
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Товарищ, вы хоть немного знакомы с С++? А то судя по рассуждениям - не очень.
Да, конечно, я работаю профессиональным программистом шучу конечно)))
Я изучал С++ полгода назад в прошлом семестре в универе. Но наша преподавательница так нас учила, что мы даже не установили в кабинете программу типа Visual Studio за весь, семестр, а писали программки на листочках))) Но зато у меня есть целая тетрадь с лекциями по С++.
Вообщем я ни разу не писал программы на С++ на компе. Да и отношение к этому предмету у меня было по*уистическое(я думал, что С++ мне не пригодится, но ошибался).
Мы писали программки типа таких:
Код:
#include <iostream>
using namespace std;

int main()
{
int gal,fut;
cout<<"введите gal";
cin>>gal;
fut=7.5*gal;
cout<<"значение в футах"<<fut<endl;
return 0;
}
потом сложнее, с массивами, строками, указателями, функциями, классами.
На лекциях было что-то связанное api-программированием и GDI, но это уже был конец мая, хорошая погода, и я решил окончательно забить на лекции по С++. В итоге я сдал экзамен на 3 и С++ для меня наконец-то закончился.

Но сейчас мне нужно сделать курсовую по предмету "Операционные системы", а именно написать программу, которая будет определять параметры HDD и выводить их на экран.
И вот я недавно установил Visual Studio 2008 и решил делать прогу на С++.

В Visual C++ я естественно не шарю, но хочу сделать форму с лэйблами и кнопкой, и при нажатии на кнопку в лэйблы будут выводиться параметры HDD(в принципе думаю это не так уж и сложно, так что я думаю что справлюсь [не без вашей помощи конечно же] ).

Где-то полтора года назад мы изучали Visual Basic и я имею представление о формах и их элементах.
Но там все было проще, вызываешь обработчик кнопки пишешь там, допустим TextBox1.Text="Hello" и готово. А тут все как-то сложнее, еще не разобрался что и в каком месте писать в главном файле проекта, но уверен что разберусь в этом.
sum42 вне форума Ответить с цитированием
Старый 18.11.2008, 19:37   #7
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
Сообщение от filosof_x86 Посмотреть сообщение
ACE Valery, мне кажется, что начинать осваивать новичку С++, параллельно используя для этого MFC... мягко говоря... ну не лучшая идея...
Хм.. ну мне показалось, что человек знает, о чем говорит...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 18.11.2008, 23:18   #8
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Цитата:
Сообщение от sum42 Посмотреть сообщение
создал все в том же проекте лэйбл с именем label1
(я так понимаю это и есть ID) и кнопку.

а вариант
Код:
GetDlgItem(label1)->SetWindowText("hello");
не прокатил, выдается две ошибки, но все равно спасибо.
Неправильно вы понимаете. Вы используете .NET Framework, а ACE Valery говорил про MFC. Это разные технологии, которые не могут быть использованы одновременно.
В первом вы программируете на C++/CLI, а во втором на C++ (поймите же, наконец, что это разные языки, пусть и весьма похожие).

Цитата:
Сообщение от sum42 Посмотреть сообщение
по поводу пректов: разве я не смогу использовать api-функции
в этом проекте, подключив библиотеку "windows.h" в файл stdafx.h?
В .NET – нет. Точнее вы сможете использовать API функции, но для этого придется попотеть. Простым подключением заголовочного файла тут не обойдешься?

С настолько шаткими знаниями лучше бы ограничились бы консолью. Визуальное программирование требует больше знаний.
filosof_x86 вне форума Ответить с цитированием
Старый 19.11.2008, 21:25   #9
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
Сообщение от filosof_x86 Посмотреть сообщение
Неправильно вы понимаете. Вы используете .NET Framework, а ACE Valery говорил про MFC.
sum42, я же говорилА, что надо создавать MFC Application.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 19.11.2008, 23:34   #10
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

ACE Valery, извини, не знал . Надеюсь не обидел...
filosof_x86 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вывести текст из БД nikleb PHP 2 27.06.2008 10:13
Как вывести на канвасе текст не с белым, а прозрачным фоном? Altera Общие вопросы Delphi 2 29.03.2008 20:21
Как вывести из текстового файла на экран русский текст? Mischa Помощь студентам 8 12.03.2008 06:23
Множества. Не получается вывести результат RECREATOR Общие вопросы Delphi 3 24.12.2007 23:31
Не получается вывести график RECREATOR Общие вопросы Delphi 7 23.12.2007 01:23