Вопрос № 98884: Здарсте всем!
Почему когда пишут трояна или клавиатурного шпиона некоторые фунции описывают в dll (даже не некоторые а почти все)
с чем это связано помимо того что dll в процессах не видно???...Вопрос № 98890: Привет, подскажите пожалуйста, как правильней составить код программы.
Ситуация следующая, есть таблица, компонент DBGrid, в которой выводится таблица. В таблице осуществляется фильтрация, условия задаются с помощью компонент Edit и ComboBox. Выб...Вопрос № 98903:
Здравствуйте уважаемые эксперты!
Объясните пожалуйста, что значит getline из ниже представленной программы. И как прочесть результат работы функций strcmp и stricmp. Если я определяю их так как показано ниже, то программа возвращает к...Вопрос № 98907: У меня программа на c++ скачана с интеренета.
Среда Microsoft visual studio net.
Проблема в том что не могу отлаживать программу.
В configuration manager есть только Release а Debug нет.
Скажите пожалуйста что делать?
...
Вопрос № 98.884
Здарсте всем!
Почему когда пишут трояна или клавиатурного шпиона некоторые фунции описывают в dll (даже не некоторые а почти все)
с чем это связано помимо того что dll в процессах не видно???
Отправлен: 19.08.2007, 10:49
Вопрос задал: Tatarin (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ross
Здравствуйте, Tatarin!
Дело в том, что dll можно зарегистрировать в системе как ловушку (функция SetWindowsHookEx) после чего она подключается ко всем процессам и перехватывает сообщения, которые посылаются системой.
Почитать про функцию можно в msdn --------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 19.08.2007, 13:02 Оценка за ответ: 5 Комментарий оценки: Почему SetWindowsHookEx надо писать обязательно в dll ? а что в exe нгельзя?
Отвечает: Aristos
Здравствуйте, Tatarin!
Это связано с методами отслеживания нажатия клавиш или других действий пользователя. Одним из самых распространенных методов является, так называемое, внедрение (injection в англоязычной литературе) своей dll в другой процесс. После этого функции из этой dll выполняются как часть другого процесса.
Подробнее о методах можно узнать, например, в книге Джеффри Рихтера "Windows для профессионалов" или найти в интернете.
Ответ отправил: Aristos (статус: 3-ий класс)
Ответ отправлен: 19.08.2007, 14:59
Вопрос № 98.890
Привет, подскажите пожалуйста, как правильней составить код программы.
Ситуация следующая, есть таблица, компонент DBGrid, в которой выводится таблица. В таблице осуществляется фильтрация, условия задаются с помощью компонент Edit и ComboBox. Выбранные в ходе фильтрации данные хочу показать отдельно в том же DBGridе, для чего использую компонент CheckBox и следующий код...
void __fastcall TForm3::CheckBox1Click(TObject *Sender)
{
if (!CheckBox1->Checked);
TLocateOptions Options;
Table1->Active=true;
Table1->Filtered=false;
Table1->Filter=ComboBox1->Text;-ошибка здесь, но как правильно не знаю
Table1->Filtered=true;
Table1->Refresh();
}
Отправлен: 19.08.2007, 12:01
Вопрос задал: Boio (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Новиков Андрей Викторович
Здравствуйте, Boio!
Насколько я понимаю комбо бокс многострочный, потому надо поллучать не текст комбо бокса, а скорее текст строки в комбо боксе.
Объясните пожалуйста, что значит getline из ниже представленной программы. И как прочесть результат работы функций strcmp и stricmp. Если я определяю их так как показано ниже, то программа возвращает какие то непонятные произвольные числа.
Отвечает: Кузнецов Дмитрий Григорьевич
Здравствуйте, Чирков Вячеслав Александрович!
При использовании cin для выполнения ввода с клавиатуры, cin использует пустые символы, такие как пробел, табуляция или возврат каретки, для определения, где заканчивается одно значение и начинается другое. Во многих случаях вы захотите, чтобы ваши программы считывали целую строку данных в символьную строку. Для этого программы могут использовать функцию cin.getline. Для использования cin.getline вам необходимо указать символьную строку, в которую будут помещаться символы, а также размер строки.
Функция stricmp выполняет сравнение двух строк, не учитывая регистра
символов.
Прототип функции stricmp:
int stricmp(const char *strl, const char *str2);
Функция сравнивает строки strl и str2, не делая различия между символами в
нижнем и верхнем регистре. Возвращает в качестве результата сравнения целую
величину:
0 когда strl больше, чем str2.
Пример
char string1[] = "Borland C++";
char string2[] = "BORLAND C++";
int i = strcmp(string1, string2);
В последнем операторе переменной i присваивается значение 0, так как string1 и
string2 отличаются друг от друга только регистром символов.
Ответ отправил: Кузнецов Дмитрий Григорьевич (статус: 1-ый класс)
Ответ отправлен: 19.08.2007, 14:40 Оценка за ответ: 4
Отвечает: Aristos
Здравствуйте, Чирков Вячеслав Александрович!
Функция getline считывает в буфуер (stroka и stroka2 в вашем коде) символы до нажатия клавиши Enter или до тех пор пока не будет введено указанное число символов (100 в вашем коде).
Функция strcmp производит посимвольное сравнение строк, stricmp делает то же самое но не различает строчные и прописные буквы. Возвращают эти функции следущее - 0, если строки равны, число меньшее нуля если первая строка меньше, и число большее нуля, сли вторая строка больше.
Если заменить строку с выводом результатов на
cout << "Rezultat - " << (stricmp (stroka, stroka2) == 0) << "
";
то будет печататься 1 если строки равны, и 0 если не равны.
Ответ отправил: Aristos (статус: 3-ий класс)
Ответ отправлен: 19.08.2007, 14:51 Оценка за ответ: 4
Отвечает: Попов А.С.
Здравствуйте, Чирков Вячеслав Александрович!
cin.getline() - считает последовательность символов (длиной не более 100) до нажатия Enter
stricmp - сравнение строк без учета регистра (strcmp учитывает регистр) возвращает нулевой результат при совпадении строк, положительный - если stroka > stroka2 и наоборот
Ответ отправил: Попов А.С. (статус: 2-ой класс)
Ответ отправлен: 19.08.2007, 15:43
Если вас интересует какая-либо функция C/C++, вы в большинстве случаев можете найти ее описание в msdn. Вот пример запроса по функции stricmp: Ссылка
Либо вы можете найти описание и примеры функций в поиске, вот пример: Ссылка
Ответ отправил: Rockie (статус: 2-ой класс)
Ответ отправлен: 20.08.2007, 11:09
Вопрос № 98.907
У меня программа на c++ скачана с интеренета.
Среда Microsoft visual studio net.
Проблема в том что не могу отлаживать программу.
В configuration manager есть только Release а Debug нет.
Отвечает: Алексей Демаков
Здравствуйте, Марченко Роберт Владимирович !
Вы можете добавить конфигурацию к проекту самостоятельно, или создать новый проект, в котором автоматически будут созданы конфигурации Release и Debug и перенести в него файлы из имеющегося проекта. В первом случае необходимо скопировать существующую конфигурацию и изменить опции компилятора (убрать оптимизацию и включить отладочную информацию). Во втором случае необходимо просмотреть имеющийся проект на предмет опций, отличающихся от заданных по умолчанию (списки каталогов, для включаемых (include) файлов и
библиотек, дополнительные библиотеки и т.п.) и изменить соответствующим образом стандартные конфигурации.
Ответ отправил: Алексей Демаков (статус: Студент)
Ответ отправлен: 19.08.2007, 15:39 Оценка за ответ: 5