Форум программистов, компьютерный форум CyberForum.ru

Не работает поиск сигнатуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Почему выдает ошибку в строке "for(Data::iterator p=stats.begin(); p!=stats.end(); ++p)" http://www.cyberforum.ru/cpp-beginners/thread520457.html
"Read a sequence of possibly whitespaceseparated (name,value) pairs, where the name is a single whitespaceseparated word and the value is an integer or a floatingpoint value. Compute and print the sum and mean for each name and the sum and mean for all names." Нашел решебник, там решение))) #include <iostream> #include <map> #include <string> struct Stat {
C++ Можете скомпилировать и сказать работает ли? Не хочу качать компилятор для 4-5 заданий, точнее занимали бы они меньше места как, например, Dev-CPP для С. Можете скомпилировать данный код и сказать работает он вообще или нет? Если нет то какие сообщения выдает. #include <iostream.h> #include <string.h> #include <cstring.h> #include <conio.h> class OverflowException { public: OverflowException() { http://www.cyberforum.ru/cpp-beginners/thread520443.html
Написать программу удаления букв «б» из введенного слова C++
Написать программу удаления букв «б» из введенного слова
C++ Найти наибольшую клику в заданном орграфе, используя алгоритм нахождения независимых множеств
Клика – полный подграф неориентированного графа. Другими словами, клика графа есть подмножество его вершин, такое, что между каждой парой вершин этого подмножества существует ребро и, кроме того, это подмножество не принадлежит никакому большому подмножеству с тем же свойством. Подграф графа — граф, содержащий некое подмножество вершин данного графа и некое подмножество инцидентных им рёбер. ...
C++ не компилируется http://www.cyberforum.ru/cpp-beginners/thread520424.html
Вот кусок кода class Game; class View { private: static int left;
C++ Компилятор выдает ошибку при объявлении массива. Не могу понять где соль Объясните пожалуйста в чем моя ошибка. Вот исходник #include <iostream> // cin, cout,endl #include <math.h> // Мат функции #include <iomanip> // формат вывода using namespace std; const int n=2; //Кол-во строк const int m=7; //Кол-во столбцов подробнее

Показать сообщение отдельно
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
17.03.2012, 19:10  [ТС]     Не работает поиск сигнатуры
Я сам только обратился к плюсам, но как я понимаю MSVS как-то слишком трепетно относится к описанию функций и переменных. Код подправил согласно его требований, но
1>------ Build started: Project: test, Configuration: Debug Win32 ------
1>ra.obj : error LNK2005: "void * __cdecl HandleProcessa(char *)" (?HandleProcessa@@YAPAXPAD@Z) already defined in handle_processa.obj
1>C:\visual studio 2010\Projects\test\Debug\test.exe : fatal error LNK1169: one or more multiply defined symbols found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// ra.ccp
#include <windows.h>
#include <conio.h> 
 
#include <stdio.h>
#include "handle_processa.cpp"
 
int main ( ) { 
 
 char ima_protcessa [MAX_PATH];
 
 
 //Русский язык
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 //
 
 
 unsigned char sposob_nah_adresov;
 
 
 //!!!!!!!!!З А Г О Л О К   О К Н А!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 char sPath[MAX_PATH]= "прога дампирует участок адресного пространства процесса";
 CharToOem((LPCTSTR)sPath,sPath);
 SetConsoleTitle((LPCTSTR)sPath);
 //!!!!!!!!!К О Н Е Ц   З А Г О Л О К   О К Н А!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 
 
 
 //Первое, что сделааем, это введём имя процесса, который будем перегонять в строку:
 //Ввод имени файла:
 printf ("Вводи имя процесса\n");
 if (!gets (ima_protcessa)) {
  printf ("проблема с водом имени процесса\n");
  system ("pause");
  return 0;   
 };       
 
 
 
 long int NacalniAdres;
 printf ("Вводи адрес, с которого надо дампировать\n");
 scanf ("%x", &NacalniAdres);
 
 
 
 printf ("Если ты знаешь размер дампируемого участка, нажми 1, если знаешь номер \
  конечного байта, нажми 2\n");
 printf ("1         Знаешь размер дампируемого участка\n\
  2        знаешь размер конечного байта\n");
 do {
  sposob_nah_adresov= getch ();
 }
 while (sposob_nah_adresov!= '1' && sposob_nah_adresov!= '2');
 
 
 long int KolichestvoSchitivaemihBait; 
 long int nomer_konechnogo_baita; 
 if (sposob_nah_adresov== '2') {
  printf ("Вводи номер конечного байта\n");
  scanf ("%x", &nomer_konechnogo_baita);
  KolichestvoSchitivaemihBait= nomer_konechnogo_baita- NacalniAdres+ 1;
 }
 else {
  printf ("Вводи количество дампируемых байтов\n");
  scanf ("%x", &KolichestvoSchitivaemihBait);
 }
 
 
 
 
 
 int i, j;
 
 //Ищем хэндл процесса
 HANDLE hProcess= HandleProcessa (ima_protcessa);
 if (!hProcess) {
  printf ("хэндл процесса %s не найден\n", ima_protcessa);
  system ("pause");
  return 0;
 }
 
 /*В эту переменную будет считываться каждый байт, а потом выводиться в файл rez.txt
 Она должня быть именно не сhar, если будет сhar, тогда может вывестись вместо 90 ffffff90
 проверено уже. 
 */
 
 unsigned char  lpBuffer ;
 
 FILE* f_txt;
 FILE* f;
 
 f_txt= fopen ("rez.txt","wb");
 f= fopen ("rez","wb");
 if (!f_txt) {
  printf ("File-rezultat txt ne sozdan\n");
  system ("pause");
  return 0;
 } 
 if (!f) {
  printf ("File-rezultat ne sozdan\n");
  system ("pause");
  return 0;
 } 
 
 //Вот, всё. Такой вот цикл. Выводится значение байта, а рядом- его порядковый номер. 
 //Запишем всё это дело в файл rez.txt
 j= 0;
 for (i= 0; i< KolichestvoSchitivaemihBait; i++) {
  ReadProcessMemory (hProcess, (void*)(NacalniAdres+ i), &lpBuffer, 1, 0  );
  fprintf (f_txt, "0X%-0.2x,%c", lpBuffer, ' ');
  fputc (lpBuffer, f);
  if (j++== 3) {
   putc (10, f_txt);
   j= 0;
  }
 }
 
 
 CloseHandle (hProcess);
 fclose (f_txt);
 fclose (f);
 return 0;
}
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
// handle_processa.cpp
#ifndef uslovni_fail
#define uslovni_fail
 
 
 
#include <stdio.h> 
#include <Windows.h> 
#include <Winnt.h> 
//Здесь определена структура PROCESSENTRY32 и функция CreateToolhelp32Snapshot
#include <tlhelp32.h>
//int main ();
HANDLE HandleProcessa (char* szFilename) {
 
 HANDLE hProcessSnap;
 PROCESSENTRY32 pe32;
 
 //Это мы находим дескриптор снимка процессов
 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
 if (hProcessSnap == INVALID_HANDLE_VALUE)
 return false;
 pe32.dwSize = sizeof(PROCESSENTRY32);
 
 
 do {
  if (!Process32Next(hProcessSnap, &pe32)) // перечисляем процессы
  return FALSE;
 }
 while (lstrcmpi(pe32.szExeFile, (LPCTSTR) szFilename)); // ищем нужный процесс. Его PID будет в поле pe32.th32ProcessID              
 
 
 CloseHandle(hProcessSnap);
 
 //Тот самый хэрдл, который ищем
 HANDLE hProcess;
 
 
 //Функция OpenProcess возвращает дескриптор процесса, а третий принимаемый ею параметр- идентификатор процесса
 // (PID)
 
//Внимание! Не для всех процессов возвращается хэндл, если права доступа PROCESS_ALL_ACCESS
//Приходится использовать только для чтения
 hProcess = OpenProcess(PROCESS_VM_READ, 0, pe32.th32ProcessID);
 
 return hProcess;
};
#endif
 
Текущее время: 17:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru