Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/78: Рейтинг темы: голосов - 78, средняя оценка - 4.65
2 / 2 / 0
Регистрация: 09.10.2009
Сообщений: 40
1

error c2731 winmain функция не может быть перегружена. Как убрать данную ошибку?

07.04.2010, 21:10. Показов 14563. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
error c2731 winmain функция не может быть перегружена. Как убрать данную ошибку?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2010, 21:10
Ответы с готовыми решениями:

C2731: Функция WINMAIN не может быть перегруженна
Да я знаю что тема заеженная, но описания этой ошибки нигде нет. Я только начинаю изучать DirectX и...

Ошибка - функция не может быть перегружена
Добрый вечер! Первый раз пишу на этом форуме, я новичок, так что как можно понятнее объясняйтесь,...

WWinMain не может быть перегружена
#include <Windows.h> #include <iostream> int CALLBACK wWinMain(HINSTANCE hInstance, PWSTR...

Выдает ошибку [Linker error] undefined reference to `WinMain@16'
Собственно проблема в сабже - выдает gcc.exe "J:\Курсовая БД\Курсовая .c" -o "J:\Курсовая...

10
4337 / 1506 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
08.04.2010, 04:28 2
Не перегружать ее
1
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
08.04.2010, 09:01 3
Не делать ошибки... Что вы пишите?
0
2 / 2 / 0
Регистрация: 09.10.2009
Сообщений: 40
08.04.2010, 10:58  [ТС] 4
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
#include <windows.h>  
#include "mditest.h"  
 
 
HWND      hWndClient = NULL;
HINSTANCE hInst;   // current instance
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);  
LPCTSTR lpszAppName  = L"MyMDIApp";
LPCTSTR lpszChild    = L"MDIChild";
LPCTSTR lpszTitle    = L"MDI Test Application"; 
 
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nCmdShow)
{
   MSG        msg;
   HWND       hWnd; 
   WNDCLASSEX wc;
 
   // Register the main application window class.
   //............................................
   wc.style         = CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc   = (WNDPROC)WndProc;       
   wc.cbClsExtra    = 0;                      
   wc.cbWndExtra    = 0;                      
   wc.hInstance     = hInstance;              
   wc.hIcon         = LoadIcon( hInstance, lpszAppName ); 
   wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
   wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1);
   wc.lpszMenuName  = lpszAppName;              
   wc.lpszClassName = lpszAppName;              
   wc.cbSize        = sizeof( WNDCLASSEX );
   //wc.hIconSm       = LoadImage( hInstance, lpszAppName, 
   //                              IMAGE_ICON, 16, 16,
   //                              LR_DEFAULTCOLOR );
 
   if ( !RegisterClassEx( &wc ) )
      return( FALSE );
 
   // Register the window class for the MDI child windows.
   //.....................................................
   wc.lpfnWndProc   = (WNDPROC)ChildWndProc;
   wc.hIcon         = LoadIcon( hInstance, lpszChild );
   wc.hCursor       = LoadCursor( NULL, IDC_ARROW );
   wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
   wc.lpszMenuName  = NULL;
   wc.lpszClassName = lpszChild;
   wc.cbSize        = sizeof( WNDCLASSEX );
   //wc.hIconSm       = LoadImage( hInstance, lpszChild, 
   //                              IMAGE_ICON, 16, 16,
   //                              LR_DEFAULTCOLOR );
 
   if ( !RegisterClassEx( &wc ) )
      return( FALSE );
 
   hInst = hInstance; 
 
   // Create the main application window.
   //....................................
   hWnd = CreateWindow( lpszAppName, 
                        lpszTitle,    
                        WS_OVERLAPPEDWINDOW, 
                        CW_USEDEFAULT, 0, 
                        CW_USEDEFAULT, 0,  
                        NULL,              
                        NULL,              
                        hInstance,         
                        NULL               
                      );
 
   if ( !hWnd ) 
      return( FALSE );
 
   ShowWindow( hWnd, nCmdShow ); 
   UpdateWindow( hWnd );         
 
   while( GetMessage( &msg, NULL, 0, 0) )   
   {
      if ( hWndClient && TranslateMDISysAccel( hWndClient, &msg ) )
         continue;
 
      TranslateMessage( &msg ); 
      DispatchMessage( &msg );  
   }
 
   return( msg.wParam ); 
}
 
// An ID that is different than all menu ids.
//...........................................
#define ID_CHILDWINDOW 1000 
 
LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
   switch( uMsg )
   {
      case WM_CREATE :
              {
                 CLIENTCREATESTRUCT ccs;
    
                 // Assign the 'Window' menu.
                 //..........................             
                 ccs.hWindowMenu  = GetSubMenu( GetMenu( hWnd ), 1 );
                 ccs.idFirstChild = ID_CHILDWINDOW;
 
                 // Create the client window.
                 //..........................
                 hWndClient = CreateWindowEx( WS_EX_CLIENTEDGE, 
                                              L"MDICLIENT", NULL,
                                              WS_CHILD | WS_CLIPCHILDREN, 
                                              0, 0, 0, 0,
                                              hWnd, (HMENU)0xCA0, hInst, &ccs);
 
                 ShowWindow( hWndClient, SW_SHOW );
              }
              break;
 
      case WM_SIZE :
              // Size the client window to the size of the client
              // area of the main application window.
              //.................................................
              MoveWindow( hWndClient, 0, 0, LOWORD( lParam ), 
                                            HIWORD( lParam ), TRUE );
              break;
     
      case WM_COMMAND :
              switch( LOWORD( wParam ) )
              {
                 case IDM_NEW :
                     {
                        HWND hWndChild;
 
                        // Create a new child window.
                        //...........................
                        hWndChild = CreateMDIWindow( (LPTSTR)lpszChild, 
                                         L"Document", 0L,
                                         CW_USEDEFAULT, CW_USEDEFAULT, 
                                         CW_USEDEFAULT, CW_USEDEFAULT,
                                         hWndClient, hInst, 0L);
 
                        ShowWindow( hWndChild, SW_SHOW );
                     }
                     break;
 
                 case IDM_CLOSE :
                     {
                        HWND hActiveWnd;
                        
                        // Close the active child window.
                        //...............................
                        hActiveWnd = (HWND)SendMessage( hWndClient, 
                                                        WM_MDIGETACTIVE, 0, 0 );
                        if ( hActiveWnd )
                           SendMessage( hWndClient, WM_MDIDESTROY, (WPARAM)hActiveWnd, 0 );
                     }
                     break;
 
                 case IDM_CASCADE :
                        CascadeWindows( hWndClient, MDITILE_SKIPDISABLED,
                                        NULL, 0, NULL );
                        break;
 
                 case IDM_TILEHORZ :
                        TileWindows( hWndClient, MDITILE_HORIZONTAL, 
                                     NULL, 0, NULL );
                        break;
 
                 case IDM_TILEVERT :
                        TileWindows( hWndClient, MDITILE_VERTICAL, 
                                     NULL, 0, NULL );
                        break;
 
                 case IDM_ARRANGE :
                        ArrangeIconicWindows( hWndClient );
                        break;
 
                 case IDM_ABOUT :
                        DialogBox( hInst, L"AboutBox", hWnd, (DLGPROC)About );
                        break;
 
                 case IDM_EXIT :
                        DestroyWindow( hWnd );
                        break;
 
                 default :
                        return( DefFrameProc( hWnd, hWndClient, 
                                              uMsg, wParam, lParam ) );      
              }
              break;
      
      case WM_DESTROY :
              PostQuitMessage(0);
              break;
 
      default :
            return( DefFrameProc( hWnd, hWndClient, uMsg, wParam, lParam ) );
   }
 
   return( 0L );
}
 
 
LRESULT CALLBACK ChildWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
   //switch( uMsg )
   //{
   //   default :
   //         return( DefMDIChildProc( hWnd, uMsg, wParam, lParam ) );
   //}
 
   return( 0L );
}
 
 
LRESULT CALLBACK About( HWND hDlg,           
                        UINT message,        
                        WPARAM wParam,       
                        LPARAM lParam)
{
   switch (message) 
   {
       case WM_INITDIALOG: 
               return (TRUE);
 
       case WM_COMMAND:                              
               if (   LOWORD(wParam) == IDOK         
                   || LOWORD(wParam) == IDCANCEL)    
               {
                       EndDialog(hDlg, TRUE);        
                       return (TRUE);
               }
               break;
   }
 
   return (FALSE); 
}
Добавлено через 1 минуту
Цитата Сообщение от Вонх Посмотреть сообщение
Не делать ошибки... Что вы пишите?
выше код написал

Добавлено через 10 минут
понимаю что наверно ламерский какой-то вопрос, но новичку сложно разобраться
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
08.04.2010, 11:00 5
Не знаю, входит ли это в уже объявленное, но CALLBACK нехватает.
0
2 / 2 / 0
Регистрация: 09.10.2009
Сообщений: 40
08.04.2010, 23:59  [ТС] 6
Цитата Сообщение от taras atavin Посмотреть сообщение
Не знаю, входит ли это в уже объявленное, но CALLBACK нехватает.
добавил CALLBACK - стало ругаться дважды на перегрузку функции. И все, неужели никто не знает как побороть?
0
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
09.04.2010, 12:46 7
Чесно сказать, я не понил что за программа и что она делает или должна делать... Вы скорее всего качнули где-то код...
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.04.2010, 12:58 8
Добавил после WINAPI и сла ругаться дважды? А на оконную процедуру не ругался? Значит я прогнал. Типы параметров правильные. Может порядок типов самой функции?
0
Эксперт С++
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
09.04.2010, 18:15 9
А если написать LPSTR вместо LPTSTR, лучше не станет? А то есть у меня подозрение, что опять юникод виноватый...
2
42 / 42 / 8
Регистрация: 22.05.2009
Сообщений: 97
09.04.2010, 19:09 10
А что лежит в .h файле посмотреть можно? В коде приведенном выше с функцией WinMain все в порядке, может в прототипе ошибка закралась..
0
2 / 2 / 0
Регистрация: 09.10.2009
Сообщений: 40
09.04.2010, 21:07  [ТС] 11
Цитата Сообщение от Даемоник Посмотреть сообщение
А что лежит в .h файле посмотреть можно? В коде приведенном выше с функцией WinMain все в порядке, может в прототипе ошибка закралась..
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define IDM_EXIT           100
#define IDM_NEW            200
#define IDM_CLOSE          201
#define IDM_CASCADE        202
#define IDM_TILEHORZ       203
#define IDM_TILEVERT       204
#define IDM_ARRANGE        205
#define IDM_ABOUT          300
 
#define DLG_VERFIRST        400
#define DLG_VERLAST         404
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK ChildWndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About  (HWND, UINT, WPARAM, LPARAM);
Добавлено через 29 секунд
я пробовал комментировать "//LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);" - не помогло

Добавлено через 6 минут
Цитата Сообщение от Nick Alte Посмотреть сообщение
А если написать LPSTR вместо LPTSTR, лучше не станет? А то есть у меня подозрение, что опять юникод виноватый...
ошибка с перегрузкой функции ушла - огромное спасибо. Только окно mdi-приложения все равно не появилось. В чем может быть загвоздка?
1
09.04.2010, 21:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2010, 21:07
Помогаю со студенческими работами здесь

Может ли быть данная функция быть функцией распределения некоторой случайной величины?
Может ли быть функция F(x)= |sinx| быть функцией распределения некоторой случайной величины? Почему?

Как убрать ошибку -Значение должно быть скаляром или матрицей?
Не могу понять в чем дело, у коллег по учебе в точности все тоже самое. Помогите пож!

IdHTTP1 как убрать ошибку Socket Error #10060 ?
Доброго времени суток! Написал код: try IdHTTP1:=TIdHTTP.Create(nil); F:=...


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

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