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

Использование своих функций, error C2601 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
31.07.2006, 16:13     Использование своих функций, error C2601 #1
Подскажите пожалуйста. У меня есть пара функций, есть для них прототипы, а компилер говорит, что неправильное определение функций, я сомтрела в мсдн по коду ошибки, но не разобралась.



Может я не туда прототипы сую?

У меня проект создан через MFC AppWizard; соответственно файлы myproj.cpp myproj.h myprojDlg.cpp myprojDlg.h

я прототипы в myprojDlg.h ставлю:
C++
1
2
3
int  dayInMonth(int numb_month, int year);
 
bool  checkvisokos(int god);
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
void CMyprojDlg::OnOK() 
 
{
 
UpdateData (TRUE);
 
int  dayInMonth(int numb_month, int year)
 
{    int dIm;
 
  switch(numb_month)
 
  { 
 
  case '1':{dIm=31; ;break; }
 
  case '2':{ if !(checkvisokos(year)) {dIm=28;}else {dIm=29;} break;}
 
  case '3':{dIm=31; break;}
 
  case '4':{dIm=30; break;}
 
  case '5':{dIm=31; break;}
 
  case '6':{dIm=30; break;}
 
  case '7':{dIm=31; break;}
 
  case '8':{dIm=31; break;}
 
  case '9':{dIm=30; break;}
 
  case '10':{dIm=31;break;}
 
  case '11':{dIm=30;break;}
 
  case '12':{dIm=31;break;}
 
  
 
  }
 
  return dIm;
 
 } 
 
bool  checkvisokos(int god)
 
{
 
if ( div(god,4).rem ==0) {return true;}else {return false;}
 
}
 
... 
 
int nM = currt.GetMonth(); 
 
int nY = currt.GetYear();
 
int dify=nY-dry;
 
int difm=nM-drm;
 
int difd=nD-drd;
 
...
 
if (difd 
.......
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2006, 16:13     Использование своих функций, error C2601
Посмотрите здесь:

Использование функций! C++
C++ Использование функций.
C++ Использование функций
Использование функций C++
Использование функций C++
error C2601: 'main' : local function definitions are illegal fatal error C1004: unexpected end of file found C++
C++ Использование функций
Использование функций (С++) C++
Использование функций C++
C++ Использование функций
Использование функций C++
C++ Error C2601: main: недопустимые локальные определения функций

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vyacheslav
Сообщений: n/a
31.07.2006, 16:35     Использование своих функций, error C2601 #2
Один из вариантов ошибки описанный в MSDN : Code tries to define a function within a function. - код пытается определить функцию внутри функции, в C++ нельзя использовать вложенные функции. Вроде этот случай.
C++
1
2
3
4
5
6
7
8
9
void CMyprojDlg::OnOK() 
{
UpdateData (TRUE);
int dayInMonth(int numb_month, int year)
{
bool checkvisokos(int god)
{
....
}}}
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
31.07.2006, 16:41  [ТС]     Использование своих функций, error C2601 #3
понятно..спасибо.
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
31.07.2006, 19:03  [ТС]     Использование своих функций, error C2601 #4
ну вот...перенесла функции...закомпилилось, но теперь линковщик ругается:

error LNK2001: unresolved external symbol "public: int __thiscall CMyprojDlg::dayInMonth(int,int,bool)" (?dayInMonth@CMyprojDlg@@QAEHHH_N@Z)



и на вторую функцию тоже :-(
ftor
0 / 0 / 0
Регистрация: 14.06.2006
Сообщений: 9
31.07.2006, 20:13     Использование своих функций, error C2601 #5
есть ли уверена, что ф-я реализвана в виде:

int CMyprojDlg::dayInMonth(int numb_month, int year)

{

....

}



А то она может быть в виде:



int dayInMonth(int numb_month, int year)

{

....

}
Stesh
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 27
31.07.2006, 20:40  [ТС]     Использование своих функций, error C2601 #6
Пасиб, разобралась, просто прототипы были не там.
Yandex
Объявления
31.07.2006, 20:40     Использование своих функций, error C2601
Ответ Создать тему
Опции темы

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