26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
1

Решил модифицировать код

24.09.2010, 17:22. Показов 1228. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решил не загромождать себя многими кодами, и написал упрощенную программу. но выходят ошибки...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "av.h"
 
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm2::Button1Click(TObject *Sender)
{
int i;
int y;
if (CheckBox1->Checked == true)
{
  char str_file[100];
FILE* fp = fopen("processinfo.db","r");
if(fp != NULL)
{
 
char ch;
while((ch = getc(fp)) != EOF)
str_file[i++]=ch;
str_file[i] = '\0';
printf(str_file);
}
else Memo1->Lines->Add("Невозможно открыть базу данных");
fclose(fp);
 
 
 
while (y==i)
{
 StopAV(str_file[y]);
}
 
fclose(fp);
}
}
}
 
//---------------------------------------------------------------------------
C++
1
2
3
[C++ Warning] av.h(29): W8004 'term' is assigned a value that is never used
[C++ Error] Unit2.cpp(45): E2034 Cannot convert 'int' to 'char *'
[C++ Error] Unit2.cpp(45): E2342 Type mismatch in parameter 'antivirus' (wanted 'char *', got 'char')
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2010, 17:22
Ответы с готовыми решениями:

Задача 8 ферзей, модифицировать код, убрав рекурсию
#include&lt;iostream&gt; #include&lt;stdio.h&gt; using namespace std; const int N=8; int X; int...

Модифицировать код программы, вращающий геометрические объекты
Доброго времени суток! Есть следующий код написанный в BorlandC...

Решил модифицировать комп
Вот параметры моего компа: Материнская плата: Модель-MS-7250, Производитель MSI Оперативная...

Модифицировать код так, чтобы в случае если будут введены буквы код выдавал ошибку
#include &lt;iostream&gt; #include &lt;climits&gt; #include &lt;windows.h&gt; using namespace std; int main()...

16
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
24.09.2010, 18:02 2
Цитата Сообщение от Gus Посмотреть сообщение
.выходят ошибки...
Эти ошибки говорят о том, что вам пора оставить в покое C++ Builder(VCL), и начать читать какую-нибудь книгу по C++ для начинающих.
2
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
24.09.2010, 18:25  [ТС] 3
Цитата Сообщение от rangerx Посмотреть сообщение
Эти ошибки говорят о том, что вам пора оставить в покое C++ Builder(VCL), и начать читать какую-нибудь книгу по C++ для начинающих.
Читал, А это не видно по коду ?????
просто иногда забывается что то....
Просто найти ошибку и исправить
0
10 / 10 / 2
Регистрация: 06.06.2010
Сообщений: 18
24.09.2010, 19:07 4
Ну а чему у вас i и y равны в начале???Может в этом косяк!
C++
1
int i=0,y=0;
0
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
24.09.2010, 23:24  [ТС] 5
Цитата Сообщение от Orlians Посмотреть сообщение
Ну а чему у вас i и y равны в начале???Может в этом косяк!
C++
1
int i=0,y=0;
Нет программа записывает в i количество строк, а потом с циклом передается все функции.
т.е

в массиве str_file содержатся имена процессов присваемые программой, и программа сканирует похожие имена процессов и закрывает их если таковы имеются.

Добавлено через 3 часа 1 минуту
Там вся проблема идет в том что, буилдер ругается на то что я пытаюсь управлять данными массива char переменной типа int вот то тут проблема вся....

Добавлено через 29 минут
В процессе выявления ошибки я наткнулся на одну странную закономерность что,
void StopAV(char* antivirus) имеет AnsiString а та переменная которую я передаю этой функции имеет вид обычного char a
C++
1
char str_file[100];
C++
1
2
3
str_file[i++]=ch;
str_file[i] = '\0';
StopAV(str_file[i]);
Помогите исправить это недорозумение.
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
24.09.2010, 23:34 6
Цитата Сообщение от Gus Посмотреть сообщение
Читал, А это не видно по коду ?????
Неумение разобраться с ошибкой вида Cannot convert 'int' to 'char *' говорит само за себя.
Цитата Сообщение от Gus Посмотреть сообщение
просто иногда забывается что то....
Да, но не до такой же степени!.. Это азы.
Цитата Сообщение от Gus Посмотреть сообщение
Просто найти ошибку
Компилятор уже всё нашёл... Осталось только исправить...
0
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
24.09.2010, 23:39  [ТС] 7
Цитата Сообщение от rangerx Посмотреть сообщение
Неумение разобраться с ошибкой вида Cannot convert 'int' to 'char *' говорит само за себя.

Да, но не до такой же степени!.. Это азы.

Компилятор уже всё нашёл... Осталось только исправить...
Я выше написал степень моей ошибки. но как исправить ее, не представляю, забыл.
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
24.09.2010, 23:47 8
Цитата Сообщение от Gus Посмотреть сообщение
void StopAV(char* antivirus) имеет AnsiString
Где в void StopAV(char* antivirus) AnsiString можно было разгладеть? ))
C++
1
StopAV(str_file); // char* antivirus = str_file
Добавлено через 7 минут
Переменные i и y не инициализированы(см. 4-й пост)
0
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
24.09.2010, 23:49  [ТС] 9
Цитата Сообщение от rangerx Посмотреть сообщение
Где в void StopAV(char* antivirus) AnsiString можно было разгладеть? ))
C++
1
StopAV(str_file); // char* antivirus = str_file
ну дык, я создавал, к примеру:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void __fastcall TForm2::Button1Click(TObject *Sender)
{
int i;
char* Pfile;
 
if (CheckBox1->Checked == true)
{
  char str_file[100];
FILE* fp = fopen("processinfo.db","r");
if(fp != NULL)
{
 
char ch;
while((ch = getc(fp)) != EOF)
str_file[i++]=ch;
str_file[i] = '\0';
Pfile = str_file[i];
StopAV(file);
Memo1->Lines->Add(str_file);
}
А теперь новая порция ошибок, прошу к столу.
C++
1
2
3
[C++ Error] Unit2.cpp(37): E2034 Cannot convert 'char' to 'char *'
[C++ Error] Unit2.cpp(38): E2108 Improper use of typedef 'file'
[C++ Warning] Unit2.cpp(51): W8004 'Pfile' is assigned a value that is never used
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
25.09.2010, 00:19 10
мда... чему по-твоему здесь
C++
1
Pfile = str_file[i];
у тебя должна стать равна переменная Pfile? Что ты вообще хочешь передать в функцию? Ты понимаешь разницу между указателем на символ и символом?
0
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
25.09.2010, 00:21  [ТС] 11
В функцию должно по идее передаватся символное значение т.е имя процесса которого нужно завершить.
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
25.09.2010, 00:31 12
Так зачем ты читаешь файл посимвольно? Какой вид имеет содержимое файла processinfo.db? Простой список строк? Подробнее.
0
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
25.09.2010, 00:53  [ТС] 13
Верно

r_server.exe
vkhack.exe


итд.

Добавлено через 12 минут
Просто исходник нормальный можно ? если не сложно конечно
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
25.09.2010, 01:43 14
Т.к. билдера у меня нет, пример стандартный
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <string>
#include <fstream>
 
//............
 
std::ifstream inFile("processinfo.db");
std::string procName;
 
while( std::getline(inFile, procName) )
    StopAV( procName.c_str() ); // !!!
 
inFile.close();
либо в список, если нужно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
#include <fstream>
#include <list>
#include <iterator>
 
typedef std::list<std::string> ProcList;
 
//...
 
std::ifstream inFile("processinfo.db");
ProcList procList( (std::istream_iterator<std::string>(inFile)),
                    std::istream_iterator<std::string>() );
inFile.close()
 
for(ProcList::iterator item = procList.begin(); item != procList.end(); ++item)
    StopAV( item->c_str() ); // !!!
В билдере, как и в дельфях, должен быть класс TStringList, если не ошибаюсь, так что можно использовать его(он проще).
0
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
25.09.2010, 11:21  [ТС] 15
Цитата Сообщение от rangerx Посмотреть сообщение
Т.к. билдера у меня нет, пример стандартный
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <string>
#include <fstream>
 
//............
 
std::ifstream inFile("processinfo.db");
std::string procName;
 
while( std::getline(inFile, procName) )
    StopAV( procName.c_str() ); // !!!
 
inFile.close();
либо в список, если нужно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
#include <fstream>
#include <list>
#include <iterator>
 
typedef std::list<std::string> ProcList;
 
//...
 
std::ifstream inFile("processinfo.db");
ProcList procList( (std::istream_iterator<std::string>(inFile)),
                    std::istream_iterator<std::string>() );
inFile.close()
 
for(ProcList::iterator item = procList.begin(); item != procList.end(); ++item)
    StopAV( item->c_str() ); // !!!
В билдере, как и в дельфях, должен быть класс TStringList, если не ошибаюсь, так что можно использовать его(он проще).
Видимо билдер зол на меня опять ошибка
C++
1
cannot to convert const char to char*
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
25.09.2010, 11:30 16
измени void StopAV(char* antivirus) на void StopAV(const char* antivirus)
1
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
25.09.2010, 12:31  [ТС] 17
Спасибо мужик , все заработало.
0
25.09.2010, 12:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2010, 12:31
Помогаю со студенческими работами здесь

Модифицировать код
Нужно для mas использовать тип db вместо dw MASM MODEL small STACK 256 .data mas1 db 'ne...

Модифицировать код
Здравствуйте! Дан пример программы, которая меняет заголовок окна. Пожалуйста, помогите...

Модифицировать код сортировки
Помогите пожалуйста я написал сортировку, мне нужно что бы Write не было, можете помочь? Ну я имею...

Модифицировать код добавлением if и else
Доброго времени cуток! Помогите модифицировать код. Требуется добавить if и else помогите это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru