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

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


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

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

Выпуск № 553
от 26.07.2004, 13:20

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


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

CrackLab
Статус: Опытный
Общий рейтинг: 127.94
[Подробней >>]
bocha
Статус: Опытный
Общий рейтинг: 133.7
[Подробней >>]
Sedric
Статус: Опытный
Общий рейтинг: 126.84
URL: Официальный сайт TGL team
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 104.93
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]


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

Вопрос № 1759. Dobrogo vam vremeni ... Spasibo za prislanii otvet. Pitalsya prognat\' progu ne polu4aetsya poisk i... (ответов: 2)
Вопрос № 1760. Zdrastvuite !!! Proshu obyasnit' kak pravilno rabotat' na DEBUG ... (ответов: 2)
Вопрос № 1761. Dobrogo vremeni !!! Est stroka str1. Zada4a dolzna dinami4eski videlyat' pamyat' dlya vvoda bukvi f ... (ответов: 1)
Вопрос № 1762. Здраствуйте. Подскажите как из под Win2K (XP) напрямую обратится к паралельному порту. Всего лишь ну... (ответов: 2)
Вопрос № 1763. Есть ли стандартный диалог открытия директории (API или MFC)? Например как в Winamp по нажатию Ins. ... (ответов: 1)
Вопрос № 1764. bsa"d Spasibo vsem ekspertam za prislanie otveti !!! No problema ostalas ??? Ni kak ne vozmozno... (ответов: 1)
Вопрос № 1765. здравствуйте. Вопрос: Написал код программы - создание окошка в windows и вывод надписи в центре окн... (ответов: 1)
Вопрос № 1766. Свой вопрос о получении доступа к конкретной ячейке памяти я уже задавал. От bocha был получен такой... (ответов: 3)

Вопросов: 8, ответов: 13


 Вопрос № 1759


Dobrogo vam vremeni ...
Spasibo za prislanii otvet. Pitalsya prognat\' progu ne polu4aetsya poisk izvesnoi bukvi I vvod ee v dnami4eskuyu stroku !!!
Mozno tolko vvesti str1 ivse !!
esli mozno popodrobnee obyasnit; eti 3 stro4ki s prilozeniya
tmp[i++] = str1[d];
tmp[i] = 0;
delete[] str2;
Esli mozno posovetuite po kakoi knige izu4at c++
Deitel and Deitel ne ponravilas
S uvazeniem Natan


Приложение:


Вопрос отправлен: 22.07.2004, 14:22
Отправитель: Natan (natanshi@013.net.il)

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

Отвечает CrackLab

Здравствуйте, Natan!
tmp[i++] = str1[d]; - Это тоже самое что и:
tmp[i] = str1[d]; i++;
tmp[i] = 0; - Тут думаю понятно. Записывая ноль в определенное место строки, мы ее заканчиваем, т.к. строки кончаются нулем.
delete[] str2; - Уничтожаем динамически созданную строку str2 из памяти. Т.е. освобождаем память.
C++ лучше всего имхо изучать по книге "Г. Шилдт - Самоучитель С++"

Ответ отправлен: 22.07.2004, 15:01
Отправитель: CrackLab


Отвечает bocha

Добрый день, Natan!
вчера я в ответе писал: char str1[100],*str2 = new char;str2[0]=0;, а ты опять char str1[100],*temp,*str2;
str2 кто инициализировать будет? замени и все работать будет, иначе в строке strcpy(tmp, str2);система пошлет тебя далеко и без денег(хотя не факт, str2 случайно м.б. валиден), а уж что она скажет по поводу delete[] str2; я промолчу. Переменная tmp не используется ( внутри цикла используется другая,локальная по отношению к if(){темп} ).ЗЫ: strcpy не умеет правильно работать с нулевым указателем, поэтому нельзя записать char *str2=0;
По поводу трех строк: поставить предпоследним символом строки (в которой хранится твоя гистограмма), найденый символ, завершить строку нулем ( в си ноль-символ - признак конца строки ), удалить строку с устаревшей гистограммой.
Колль уж результирующая строка завершается нулем, то замени последний цикл на cout << str2 << endl;

Ответ отправлен: 22.07.2004, 18:38
Отправитель: bocha


 Вопрос № 1760

Zdrastvuite !!!
Proshu obyasnit' kak pravilno rabotat' na DEBUG




Вопрос отправлен: 22.07.2004, 15:08
Отправитель: Natan

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

Отвечает CrackLab

Приветствую Вас, Natan!
Чтобы правильно отлаживать программу, вам не обходимо знать хотя бы минимальные основы ассемблера. Тогда все вопросы отпадут сами.

Ответ отправлен: 22.07.2004, 15:17
Отправитель: CrackLab


Отвечает Sedric

Приветствую Вас, Natan!
Какой debug?
Досовский?
Тогда почитай статью "dZebug:руководство юЗверя" на wasm.ru
З.Ы.Слушай, пиши кириллицей, этот волапюк задолбал!


Ответ отправлен: 23.07.2004, 12:43
Отправитель: Sedric


 Вопрос № 1761

Dobrogo vremeni !!!
Est stroka str1. Zada4a dolzna dinami4eski videlyat' pamyat' dlya vvoda bukvi f v noviyu stroku str2
Spasibo


Приложение:


Вопрос отправлен: 22.07.2004, 16:06
Отправитель: natan (natanshi@013.net.il)

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

Отвечает bocha

Здравствуйте, natan!
str2[i++]=0;- лишняя и бесполезная строка(оно и так уже ноль(tmp[i]=0;выполнет это действие)), на остальное в прошлом ответе смотри

Ответ отправлен: 22.07.2004, 18:44
Отправитель: bocha


 Вопрос № 1762

Здраствуйте. Подскажите как из под Win2K (XP) напрямую обратится к паралельному порту. Всего лишь нужно, к примеру, получить сигнал для исполнительного устройства. Скажем включить кофеварку или что другое. И нужно-то всего ничего получить сигнал на на какой-нибудь ножке LPT-разъема.
Как это реализовать на C/C++. Приложение нужно консольное.



Вопрос отправлен: 22.07.2004, 20:08
Отправитель: Игорь

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

Отвечает bocha

Добрый день, Игорь!
hFile = CreateFile("LPT1", GENERIC_WRITE, 0, NULL, NULL, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);
WriteFile(...

Ответ отправлен: 23.07.2004, 03:47
Отправитель: bocha


Отвечает Sedric

Доброе время суток, Игорь!
Напрямую из консоли не получится. Напрямую можно только драйверам. А всем другим - только через WinAPI

Ответ отправлен: 23.07.2004, 12:43
Отправитель: Sedric


 Вопрос № 1763

Есть ли стандартный диалог открытия директории (API или MFC)? Например как в Winamp по нажатию Ins. Неужели его самому надо делать?



Вопрос отправлен: 22.07.2004, 21:12
Отправитель: Сергей (shatzkiy@ok.kz)

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

Отвечает Gibbel

Здравствуйте, Сергей!
SHBrowseForFolder()

Ответ отправлен: 23.07.2004, 10:28
Отправитель: Gibbel


 Вопрос № 1764

bsa"d
Spasibo vsem ekspertam za prislanie otveti !!!
No problema ostalas ???
Ni kak ne vozmozno vivesti na ekran novuyu stroku str2 !!!!
Gde oshibka ????????


Приложение:


Вопрос отправлен: 22.07.2004, 23:06
Отправитель: natan

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

Отвечает bocha

Добрый день, natan!
ну вопервых убери нафиг последний for (cout оставь, он сам умеет работать с нуль-терминэйтед строками, иначе получишь strlen(str2)*strlen(str2) символов при выводе) и первую tmp(не используется она и компилер должен выдавать ворнинг), а во вторых может компилируешь как-то не так, только что проверил в vc6, все работает, вчера без проверки писал, прогони прогу под отладчиком и выясни где она у тебя глючит (брекпоинт поставь на начало цикла и исполни его пошагово, посмотри,чтозаписано в str1, что записывается в str2). ЗЫ:cin>>str2; читает до первого пробельного символа (пробел, табуляция, перевод строки...)м.б. все дело в этом?

Ответ отправлен: 23.07.2004, 05:16
Отправитель: bocha


 Вопрос № 1765

здравствуйте. Вопрос:
Написал код программы - создание окошка в windows и вывод надписи в центре окна (писал с использованием WinApi), код написан в C++Builder 6? компилирую - ничего не происходит, ошибки не выдает. Почему так - код верен, точно.
Заранее спасибо.



Вопрос отправлен: 23.07.2004, 02:45
Отправитель: kirill

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

Отвечает Sedric

Добрый день, kirill!
Во-первых приведи код.Может и есть ошибка.
Во-вторых в BCB на чистом WinAPI писать имхо изврат.

Ответ отправлен: 23.07.2004, 12:43
Отправитель: Sedric


 Вопрос № 1766

Свой вопрос о получении доступа к конкретной ячейке памяти я уже задавал. От bocha был получен такой ответ: reinterpret_cast(0x22);
Покопавшись в инете, я понял что этот оператор меняет тип указателя и, как следствие, можно сделать так, чтобы он указывал на некоторую ячейку памяти (например, 0х0408)
Однако у меня в Вин ХР возникает проблема: при выполнении система выдает ошибку: Программа выполнила недопустимую операцию и т.д. Возможно, это связано с тем, что мне необходимо работать напрямую с контроллером LPT (то есть с его регистрами данных, управления и состояния), так как при исмользовании reinterpret_cast() с другим адресом (от фонаря) таких проблем не возникает.
ОДНАКО! при использовании паскалевских mem($xxxx:$xxxx) и memw($xxxx:$xxxx) таких проблем в той же Вин ХР при работе с тем же контроллером LPT не возникает.
Вот такая закавыка. Принимаются любые идеи и варианты.



Вопрос отправлен: 23.07.2004, 10:00
Отправитель: Михаил (v.i.p_2003@bk.ru)

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

Отвечает CrackLab

Добрый день, Михаил!
Что конкретно вы хотите сделать? Вы хотите работать с памятью своего же процесса? Только чтение или чтение/запись?

Ответ отправлен: 23.07.2004, 13:53
Отправитель: CrackLab


Отвечает Sedric

Добрый день, Михаил!
Это тебе NT'я не даст сделать.
Не надо так вот насиловать память.
Работай через WinAPI

Ответ отправлен: 23.07.2004, 12:43
Отправитель: Sedric


Отвечает bocha

Приветствую Вас, Михаил!
В винде адреса 0x00000000-0x0000FFFF зарезервированы для выявления нулевых указателей, поэтому что-где-как пишешь?

Ответ отправлен: 23.07.2004, 12:56
Отправитель: bocha



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (25)
C / C++ (12)
Perl (4)
Builder / Delphi (17)
Pascal (24)
Basic / VBA (7)
Java / JavaScript (5)
PHP (16)
Криптография (10)
WinAPI (10)
Радиоэлектроника (8)
Пользователю
Windows 95/98/Me (45)
Windows NT/2000/XP (58)
"Железо" (43)
Поиск информации (16)
Администратору
Windows NT/2000/XP (36)
Linux / Unix (19)
Юристу
Гражданское право (12)
Семейное право (9)
Трудовое право (9)
КоАП (7)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
Rambler's TopShop Rambler's Top100
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное