Школьные компьютеры нужны только для экспериментов
В школе был установлен Delphi. Я там создал формочку типа "отправьте СМС туда-то" и поместил в автозагрузку... Что случилось потом - узнаете в следующей, 197-й серии
надеюсь, её нельзя было закрыть через диспетчер задач?)))
сегодня у меня случилась смешная ситуация, я подумал, что мой комп ошалел хДД когда я понял в чём дело - поржал)) и решил написать прогу, чтобы пост-----ся над кем-нибудь. но сначала получилось не совсем удачно... пакость сделать удалось, но немного не таким способом, каким я ожидал... со второго раза я написал прогу, которая в большой степени удовлетворяет моему первому замыслу. итак... кидаю 2 ехешника. запустите первый, комп может начать лагать. ваша задача - вырубить эту прогу не перезагружая комп. у меня с первого раза не получилось)). запустите второй - ваша задача определить что написано в исходнике по симптомам)). хотя по сути в исходниках обоих файлов написано одно и то же).
зы. проги абсолютно никакого вреда не наносят. ничего не удаляют и никуда не залезают можете быть уверены) исходники потом). кстати в исходниках всего пара строчек написано).
Они что, все время посылают enter в системный поток сигналов? О_о Кроме того, они вроде бы управляют позиционированием курсора, хотя это может быть взаимосвязано.
Кстати, жнецовый метод борьбы с первой прогой - чуток подождал, у меня система сняла приоритет с этого процесса и я в обычном режиме его закрыл. Остальные копии не имеют возможности воздействовать на ОС, только первая запущенная.
Они что, все время посылают enter в системный поток сигналов? О_о Кроме того, они вроде бы управляют позиционированием курсора, хотя это может быть взаимосвязано.
Кстати, жнецовый метод борьбы с первой прогой - чуток подождал, у меня система сняла приоритет с этого процесса и я в обычном режиме его закрыл. Остальные копии не имеют возможности воздействовать на ОС, только первая запущенная.
всё правильно насчёт курсора я никакого кода не писал, он видимо сам от тормозов двигаться не хочет.
исходник 1 проги:
показать офф-топ
public MainForm() { InitializeComponent(); while (true) SendKeys.SendWait ("{ENTER}"); }
короче у меня случилось следующее - я захотел пропинговать qip.ru, ввёл в командной строке ping qip.ru и нажал Enter, ну там показался пинг и потом много раз начала появляться запись: C:\Documetns and Settings\Admin> C:\Documetns and Settings\Admin> C:\Documetns and Settings\Admin> C:\Documetns and Settings\Admin> ... я сразу не допёр в чём дело и тупо закрыл командную строку. потом открыл пуск и начали запускаться рандомные программки, нажал на папку, она открылась 4 раза)), опять нажал пуск - меня выбросило из системы, и там можно было выбрать - выключить комп, либо войти в систему, я вхожу, но он опять творит нечто)), я опять нажимаю пуск, чтобы выключить (почему-то только потом догадался нажать Alt+F4), опять выкинуло из системы, там я нажал выключить, но он перешёл в ждущий режим)).. когда включил - опять появилось окно выхода из системы, я вошёл и опять сами собой начали открываться программки. я уже начал думать - не подшутил ли надо мной кто?)) или может вирус))... потом короче смотрю на клавиатуру, а там Enter запал))) хДД вот я чуть со стула не упал от смеха)))
сегодня у меня случилась смешная ситуация, я подумал, что мой комп ошалел хДД когда я понял в чём дело - поржал)) и решил написать прогу, чтобы пост-----ся над кем-нибудь. но сначала получилось не совсем удачно... пакость сделать удалось, но немного не таким способом, каким я ожидал... со второго раза я написал прогу, которая в большой степени удовлетворяет моему первому замыслу. итак... кидаю 2 ехешника. запустите первый, комп может начать лагать. ваша задача - вырубить эту прогу не перезагружая комп. у меня с первого раза не получилось)). запустите второй - ваша задача определить что написано в исходнике по симптомам)). хотя по сути в исходниках обоих файлов написано одно и то же).
зы. проги абсолютно никакого вреда не наносят. ничего не удаляют и никуда не залезают можете быть уверены) исходники потом). кстати в исходниках всего пара строчек написано).
ОГА)) Щас займусь этим добровольным гемороем))) Сделаем проще! Откройте тоталкомандером диск С: и удалите или измените файл ntldr - есле у вас виндоус хр)) что при этом произойдёт пишите! очень интригующе
Группа: Пользователи
Сообщений: 2 213
Регистрация: 8.6.2009
Из: Ростов-на-Дону, Красная зона
Пользователь №: 3 277 Поблагодарили: 554 раз
Цитата(IwanS @ 11.6.2011, 10:02)
Кстати, жнецовый метод борьбы с первой прогой - чуток подождал, у меня система сняла приоритет с этого процесса и я в обычном режиме его закрыл. Остальные копии не имеют возможности воздействовать на ОС, только первая запущенная.
Я нажал Win+L, и после этого программа перестала работать. Я её закрыл диспетчером задач. У меня запустился только один экземпляр, так-как я файл прямо из архива в тотал коммандере запускал (там открывается окошко с информацией о файле и 3 кнопки: закрыть окно (по умолчанию), распаковать только этот файл и запустить, распаковать все файлы и запустить выбранный файл (потом открывается ещё окошко, при закрытии которого удаляются временные файлы))
~IL~, всмысле вручную, что ли? Или с помощью штатной функции?
делать мне чтоли нечего?)) вручную писать) просто мне понадобилась такая прога, а онлайн считать неохота). ну естественно там использована стандартная функция.
Группа: Пользователи
Сообщений: 2 213
Регистрация: 8.6.2009
Из: Ростов-на-Дону, Красная зона
Пользователь №: 3 277 Поблагодарили: 554 раз
Код
void блаблабла(string message) { char* msg = new char; strcpy(msg, message.c_str()); //Любая строчка, которая принимает char* delete msg; }
Особенно доставляет, когда этот код используется для вывода отладочного сообщения, во время поиска проблемы вылета (которая происходит именно из-за этого кода). А всё начиналось с загрузки файла...
Любая функция, требующая для работы char*, byte[] и прочее извращение - ересь! Если функция предполагает работу с текстом, то пусть она принимает string!
Группа: Пользователи
Сообщений: 554
Регистрация: 29.6.2007
Из: Украина, Харьковская обл.
Пользователь №: 898 Поблагодарили: 12 раз
Цитата(IwanS @ 16.3.2012, 15:52)
Любая функция, требующая для работы char*, byte[] и прочее извращение - ересь! Если функция предполагает работу с текстом, то пусть она принимает string!
Не факт, понимаеш в чем дело, string не единственній тип для работы со строками - из чуть более чем дофига, как ты планируеш достигать унификации? Тут на помощ и приходят char/wchar_t массивы.
Пишу на С/С++/asm X86 (для души), objective C (на работе), ненавижу этот язык. [url] http://www.rapidshare.ru/2796534 [/url] вот игра пазман написанная мною для конкурса XPN - 2011 (сорци в комплекте), если кому интересно выложу и работу для 2012 года (после прошествия конкурса лутше), обе работы стали достойными чтобы меня пригласили в финал.
Группа: Пользователи
Сообщений: 2 213
Регистрация: 8.6.2009
Из: Ростов-на-Дону, Красная зона
Пользователь №: 3 277 Поблагодарили: 554 раз
string это класс, содержащий тот-же самый char*, функции с понятными названиями, и переопределёнными операторами + и []. Чтобы к примеру дописать к одному char* другой, приходится пользоваться функцией кактамеёзовут(). У string вызываются функция +.
Если бы функции для работы с char* были нормально названы... [/капитан]
Группа: Пользователи
Сообщений: 554
Регистрация: 29.6.2007
Из: Украина, Харьковская обл.
Пользователь №: 898 Поблагодарили: 12 раз
Цитата
Пишу на C#, Java, PHP и боюсь char* как огня.
Ну чтож, раз боишся значит плохо знаеш . Попробуем разьснить свойства char для случая С++, и так char это тип занимающий один байт и для безнакового случая способный следовательно хранить в себе число от 0..255, но в частных случаях некоторые числа трактуются как символы, чтоб понять, даю пример:
Код
#include <iostream> int main() { char T=0;//именно 0 а не '0'(символ нуля) do { std::cout<<T<<" "<<(int)T<<std::endl; T++; } while(T) return 0; }
Для хранения строк в этом типе используют массивы (char[]), конец строки заканчивается нулем (именно арифметическим, а не символом 0, смотреть понятие нультерминированая строка), char * (то что ты назвал), это указатель на первый элемент массива, конец строки это ноль.
Можеш написать код где будет:
Код
char text[]="some text"; char *pText=&text[0];//можеш поиграть с индексом, увидеш что будет, также можеш случайному елементу text присвоить NULL, тоже поймеш что к чему printf("text %s", pText);
Все не так сложно как кажется, хотя в реальных проектах всеже исплользуют классы-строки, так как они содержат уже доступные методы-манипуляции и что немаловажно их можно переопределить под нужды конкретного проекта.