Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 206
от 08.03.2003, 16:20

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 613
Отправлено ответов: 1382
Активность: 225.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Frankie
Статус: Начальный
Общий рейтинг: 120.83
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 109.45
URL: мощный файловый архив
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 115.37
[Подробней >>]
 
Avl2k
Статус: Опытный
Общий рейтинг: 121.47
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 107.89
[Подробней >>]
DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 110.42
[Подробней >>]
 
Ramzes
Статус: Опытный
Общий рейтинг: 136.42
[Подробней >>]
nix
Статус: Начальный
Общий рейтинг: 103.57
[Подробней >>]
akul
Статус: Доверительный
Общий рейтинг: 116
[Подробней >>]
 
Dzik
Статус: Профессиональный
Общий рейтинг: 114.57
URL: Разработка игрушек
[Подробней >>]
PL
Статус: Доверительный
Общий рейтинг: 114.63
[Подробней >>]
PoEt
Статус: Начальный
Общий рейтинг: 119.56
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 594. Добрый день, уважаемые эксперты! Я в Си совсем недавно, поэтому сразу прошу прощения если вопрос пок... (ответов: 4)
Вопрос № 596. Здравствуйте уважаемые эксперты! Очень рад, что рассылка ожила:) Вопрос такой: Как с помощью WinApi(... (ответов: 3)
Вопрос № 597. Доброе время суток , эксперты ! ******************************* Приложение состоит из одного модальн... (ответов: 6)
Вопрос № 598. Уважаемые эксперты! Не могли бы Вы кинуть мне на мыло полноценный пример для работы со списками (соз... (ответов: 3)

Вопросов: 4, ответов: 16


 Вопрос № 594

Добрый день, уважаемые эксперты!
Я в Си совсем недавно, поэтому сразу прошу прощения если вопрос покажется совсем... м-м-м.. неумным.
Я недопонял как в С++ возможно работать со строками. Собственно задача у меня такая: сфомировать строку из различных частей (некотрые формируются программно), конечный итог -- некий URL для дальнейшего использования.
Просто получить доступ к переменным типа string через #include не получается. Пишет, что string у меня "undefined". Я так понял, что в файле string.h содержатся описания, формирующие сам тип string, а также описываются функции, работающие с этим типом. Точнее описывается тип basic_string, но потом он идет как string (ну это я так понял, может и неправильно). Исходя из того, что я так это понял, пытался (путем копирования из примеров хэлпа) сделать вставки чего-то там насчет шаблонов. Естессно, не работает, я ваще-то в шаблонах не разобрался еще :-)) На Си++ перехожу с VB (ну плюньте, плюньте в меня) и всего несколько дней как. Короче, либо я в лыжах, либо одно из двух.
В общем, поможите, хто чем может, плииз. Буду рад и объяснениям, и ссылкам (на Страуструпа прошу пока не посылать).
С уважением, Mike.
ЗЫ: Мои среды: С++ 5.02 и Билдер 5.0



Вопрос отправлен: 04.03.2003, 22:19
Отправитель: Mike (answers_for_me@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Frankie

Добрый день, Mike!
Ничё не понял, но попробуй объявлять свои переменные из #include как extern! Т.е. перед обьявлением переменной просто ставиш его:
extern char* my_var;

Ответ отправлен: 05.03.2003, 21:20
Отправитель: Frankie


Отвечает Eugene

Приветствую Вас, Mike!
В Builder'e есть очень хороший тип AnsiString, в котором очень просто объединять строки. Например:
//нужен vcl.h
AnsiString asWord1 = "http";
AnsiString asWord2 = "://";
AnsiString asResult = asWord1 + asWord2;
В результате у нас получится asResult равен "http://".
На С++ немножко иначе. Например:
//нужен string.h
char szResult[256];
char szWord1[] = "http";
char szWord2[] = "://";
strcat(szResult, szWord1);
strcat(szResult, szWord2);
В результате у нас szResult указывает на строку "http://";

Ответ отправлен: 05.03.2003, 10:23
Отправитель: Eugene


Отвечает Yuri Gordienko

Доброе время суток, Mike!
Как мне кажется, - тебе нужно тип писать не string, а std::string
Удачи

Ответ отправлен: 05.03.2003, 10:24
Отправитель: Yuri Gordienko


Отвечает Avl2k

Доброе время суток, Mike!
Все классы STL (например, string) находятся в специальном пространстве имен std, т.е. для доступа к ним необходимо либо явное уточнение (std::string), либо использование директивы using namespace std.
C уважением, Avl2k.

Ответ отправлен: 06.03.2003, 17:23
Отправитель: Avl2k


 Вопрос № 596

Здравствуйте уважаемые эксперты!
Очень рад, что рассылка ожила:)
Вопрос такой:
Как с помощью WinApi(только api) прочитать файл (отобразить его в память) и вывести в cout (или обрабатывать)?
В приложении мой вариант. Там вроде бы читается, но вот как вывести его в cout или обрабатывать???
Очень надеюсь на вашу помощь!


Приложение:


Вопрос отправлен: 05.03.2003, 12:46
Отправитель: Саша (a_klinton@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Добрый день, Саша!
Думаю, что вся проблема в функции GetFileSize(). Второй параметер нужен только если твой файл размером больше 4ГБ, врядли он у тебя настолько большой.
Тебе следовало написать
dwFileSize = ::GetFileSize(hFile, NULL);
ну или в крайнем случае
dwFileSizeLow = ::GetFileSize(hFile, &dwFileSizeHigh);
После этих изменений я думаю твоя программа заработает.

Ответ отправлен: 05.03.2003, 13:46
Отправитель: vitya


Отвечает DiGiT[old]

Доброе время суток, Саша!
void main это ересь в стандарте говорится int main.
Во вторых ты можешь считать больше чем твой буффер он у тебя 10 байт а если считает больше будет Access violation :)
Потом надо ставить 0 в конце строки иначе лажа будет. Зачем LPSTR это не char* дальний :))


Ответ отправлен: 06.03.2003, 02:06
Отправитель: DiGiT[old]


Отвечает Ramzes

Приветствую Вас, Саша!
Так в чем проблема я не понял ?
ты же уже выводишъ его в cout ...
cout<< (LPSTR)lpBufToRead << endl; !!!!
У тебя же естъ массив (то бишъ строка), вот ее и обрабатывай, а потом запиши все обратно при помощи WriteFile.

Ответ отправлен: 06.03.2003, 08:34
Отправитель: Ramzes


 Вопрос № 597

Доброе время суток , эксперты !
*******************************
Приложение состоит из одного модального диалога.
При запуске хочу чтоб диалог был невидимым.Т.к. приложение
активизируется через трэй.В свойствах стиль 'Visible'
не устанавливаю.Но диалог все равно выводится.
Что делать ?



Вопрос отправлен: 05.03.2003, 14:29
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает nix

Здравствуйте, IceWINteR!
Сразу после создания диалога, его процедуре посылается сообщение WM_INITDIALOG. Его отлавливаешь и делаешь ShowWindow(hWnd,SW_HIDE), а когда надо будет показать его, делаешь ShowWindow(hWnd,SW_SHOW).
В приложении см. описание функции.
Удачи.

Приложение:

Ответ отправлен: 05.03.2003, 14:43
Отправитель: nix


Отвечает akul

Добрый день, IceWINteR!
::ShowWindow (m_hWnd, SW_HIDE)
в хендлере WM_INITDIALOG


Ответ отправлен: 05.03.2003, 14:53
Отправитель: akul


Отвечает Dzik

Приветствую Вас, IceWINteR!
А на чем пишешь на(MFC/API), скорее всего в каком нибудь конструкторе или еще где окно принудительно выводится.

Ответ отправлен: 05.03.2003, 14:53
Отправитель: Dzik


Отвечает PL

Доброе время суток, IceWINteR!
В InitIstance убери вызов DoModal и добавь необходимый те код для трея...
Надеюсь хоть чемто помог

Ответ отправлен: 05.03.2003, 15:58
Отправитель: PL


Отвечает DiGiT[old]

Здравствуйте, IceWINteR!
Когда у диалога делаешь DoModal() он разумеется появится на то он и диалог, так как там делается ShowWindow(SW_SHOW).
Делай после создания окна диалога ShowWindow(SW_HIDE);

Ответ отправлен: 06.03.2003, 03:48
Отправитель: DiGiT[old]


Отвечает Ramzes

Здравствуйте, IceWINteR!
в функции
CDialog::InitDialog() напиши следующее
ShowWindow(SW_HIDE);

Ответ отправлен: 06.03.2003, 08:36
Отправитель: Ramzes


 Вопрос № 598

Уважаемые эксперты!
Не могли бы Вы кинуть мне на мыло полноценный пример для работы со списками (созданиедобавление элементовудаление и др.)



Вопрос отправлен: 05.03.2003, 14:51
Отправитель: Дима Мусиенко (musienko@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает PL

Добрый день, Дима Мусиенко!
Вот тебе примерчик из МСДНа...
Создание
// pParentWnd is an external pointer to the parent window.
extern CWnd* pParentWnd;
// The pointer to my list box.
extern CListBox* pmyListBox;
pmyListBox->Create(WS_CHILD|WS_VISIBLE|LBS_STANDARD|WS_HSCROLL,
CRect(10,10,200,200), pParentWnd, 1);
Добавление записей
CString str;
for (int i=0;i < 10;i++)
{
str.Format(_T("item string %d"), i);
pmyListBox->AddString( str );
}
Удаление записей
for (int i=0;i < pmyListBox->GetCount();i++)
{
pmyListBox->DeleteString( i );
}


Ответ отправлен: 05.03.2003, 16:10
Отправитель: PL


Отвечает DiGiT[old]

Здравствуйте, Дима Мусиенко!
вот тебе из MFC думаю достаточно полно :))
Млин через рассылку не получается послать стока текста я те на мыло послал

Ответ отправлен: 06.03.2003, 03:50
Отправитель: DiGiT[old]


Отвечает PoEt

Приветствую Вас, Дима Мусиенко!
А примеры экзаменационных программ с КГТУ для работы тебе подойдут? (Проверены и работают! Сам сдавал!)
И много других есть!
Правда денек подождать предется, мне их с сервака в КГТУ слить надо! Если надо пиши, скинем!

Ответ отправлен: 06.03.2003, 07:42
Отправитель: PoEt



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (32)
C / C++ (27)
Perl (6)
Delphi (14)
Pascal (19)
Basic / VBA (10)
Java / JavaScript (9)
PHP (7)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (23)
"Железо" (28)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (11)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное