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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 4.63
Кувалда
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 40
#1

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

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

error c2731 winmain функция не может быть перегружена. Как убрать данную ошибку?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2010, 21:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error c2731 winmain функция не может быть перегружена. Как убрать данную ошибку? (C++):

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

Как хидер может повлиять на поведение линковщика, ищущего WinMain@16? - C++
Друзья! Может мне кто-нибудь написть простенький хидер такого поведения? //main.cpp #include <stdio.h> int main () { ...

Правильно ли перегружена функция? - C++
Здрасти, можно ли так перегрузить функцию? int FillBasicPlan(int** pMatrix,int** pMatrix2,int count_row, int count_col); int...

может ли рекурсивная функция быть встроенной? - C++
сам знаю, что не может, а почему компилится без ошибок; видимо оно компилится как обычная?

Не могу найти ошибку, может быть дело даже не в коде, но все же - C++
Не компилируется прога и все тут, уже каждый символ проверил, логически все верно. Суть даже в том, что ошибок то и нет, но программа...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
HIMen
4136 / 1385 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
08.04.2010, 04:28 #2
Не перегружать ее
0
Вонх
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 124
08.04.2010, 09:01 #3
Не делать ошибки... Что вы пишите?
0
Кувалда
1 / 1 / 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
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.04.2010, 11:00 #5
Не знаю, входит ли это в уже объявленное, но CALLBACK нехватает.
0
Кувалда
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 40
08.04.2010, 23:59  [ТС] #6
Цитата Сообщение от taras atavin Посмотреть сообщение
Не знаю, входит ли это в уже объявленное, но CALLBACK нехватает.
добавил CALLBACK - стало ругаться дважды на перегрузку функции. И все, неужели никто не знает как побороть?
0
Вонх
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 124
09.04.2010, 12:46 #7
Чесно сказать, я не понил что за программа и что она делает или должна делать... Вы скорее всего качнули где-то код...
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2010, 12:58 #8
Добавил после WINAPI и сла ругаться дважды? А на оконную процедуру не ругался? Значит я прогнал. Типы параметров правильные. Может порядок типов самой функции?
0
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
09.04.2010, 18:15 #9
А если написать LPSTR вместо LPTSTR, лучше не станет? А то есть у меня подозрение, что опять юникод виноватый...
1
Даемоник
42 / 42 / 3
Регистрация: 22.05.2009
Сообщений: 97
09.04.2010, 19:09 #10
А что лежит в .h файле посмотреть можно? В коде приведенном выше с функцией WinMain все в порядке, может в прототипе ошибка закралась..
0
Кувалда
1 / 1 / 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-приложения все равно не появилось. В чем может быть загвоздка?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2010, 21:07
Привет! Вот еще темы с ответами:

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

Как убрать сообщение "Память не может быть read"? - Администрирование Windows
Люди помогите убрать эту диби... ошибку я скоро повешусь &quot;память не может быть red&quot; гуглил уже все перепробовал а она все равно вылазит и...

Как убрать ошибку: Can't create object file: Calc.exe (error code: 5)? - Lazarus
Calc.lpr(20,1) Error: Can't create object file: Calc.exe (error code: 5) Calc.lpr(20,1) Error: Can't create executable Calc.exe ...

Declaration syntax error с чем может быть связано? - C++ Builder
#include &lt;iostream&gt; #include &lt;string.h&gt; Unicodestring port(Unicodestring b) { int i = b.find(&quot;:&quot;); return...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.04.2010, 21:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru