Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/46: Рейтинг темы: голосов - 46, средняя оценка - 4.78
 Аватар для florgas
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366

Точка входа должна быть определена

06.12.2012, 21:03. Показов 9728. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет. На YouTube нашел видео. Стало интересно. Там был приложен файл исходного кода .срр.
Я скачал и попытался скомпилировать и у меня не получилось. Glut подключен.
Я это же делал несколько месяцев назад и все получалось.
Выкладываю исходный код, который там был приложен.
IDE MSVS2010 C++;

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
#include <time.h>
#include <stdlib.h>
#include  <GL/glut.h>
 
int N=30,M=20;
int Scale=25;
 
int w = Scale*N;
int h = Scale*M;
 
int dir,num=4;
 
struct 
{ int x;
  int y;}  s[100];
 
class Fructs
{ 
public:
    int x,y;
 
    void New()
    {  x=rand() % N;
        y=rand() % M;   }
    
    void DrawApple()
   {   glColor3f(0.0,1.0,0.0);
       glRectf(x*Scale,y*Scale,(x+1)*Scale,(y+1)*Scale); }
 
} m[10];
 
 void DrawSnake()
 {  
  glColor3f(0.0,0.0,1.0);
  for (int i=0;i<num;i++)
    {glRectf(s[i].x*Scale, s[i].y*Scale, (s[i].x+0.9)*Scale, (s[i].y+0.9)*Scale); }
 }
 
 void Tick()
 {
    for (int i=num;i>0;--i)
     {s[i].x=s[i-1].x;
     s[i].y=s[i-1].y;}
 
    if (dir==0) s[0].y+=1;      
    if (dir==1) s[0].x-=1;        
    if (dir==2) s[0].x+=1;         
    if (dir==3) s[0].y-=1;         
 
  for (int i=0;i<10;i++)
    if ((s[0].x==m[i].x) && (s[0].y==m[i].y)) 
      {num++; m[i].New();}
 
  if (s[0].x>N) dir=1;  if (s[0].x<0) dir=2;
  if (s[0].y>M) dir=3;  if (s[0].y<0) dir=0;
 
 for (int i=1;i<num;i++)
  if (s[0].x==s[i].x && s[0].y==s[i].y)  num=i;
 }
 
 
 
void DrawField()
  {
   glColor3f(0.0,0.7,0.0);
   glBegin(GL_LINES);
    for (int i=0; i<w; i+=Scale) 
      {glVertex2f(i,0); glVertex2f(i,h);}
    for (int j=0; j<h; j+=Scale)  
      {glVertex2f(0,j); glVertex2f(w,j);}
    glEnd();
}
 
 
void display() {
 
     glClear(GL_COLOR_BUFFER_BIT);
 
    DrawField();
 
    DrawSnake(); 
 
   for (int i=0;i<10;i++)
     m[i].DrawApple();
 
   glFlush();
   glutSwapBuffers();
}
 
void KeyboardEvent(int key, int a, int b)
{   
    switch(key)
    {
        case 101 :  dir=0; break;
         case 102:   dir=2; break;
        case 100 :  dir=1; break;
        case 103 :  dir=3; break;
     }
}
 
void timer(int = 0)
{
  display();
 
  Tick();
       
 glutTimerFunc(50,timer,0);
}
 
int main(int argc, char **argv) {
 
    srand(time(0));
    
    for (int i=0;i<10;i++)
        m[i].New();
    
 
     s[i].x=10;
     s[i].y=10;
 
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );
glutInitWindowSize (w, h);
glutCreateWindow ("Test"); 
glClearColor(1.0,1.0,0.6,1.0);  //цвет фона
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,w,0,h);
 
glutDisplayFunc (display);
glutSpecialFunc(KeyboardEvent);
glutTimerFunc(50,timer,0);
 
glutMainLoop();
}
При компиляции происходит ошибка:
1>------ Build started: Project: game, Configuration: Debug Win32 ------
1>Build started 06.12.2012 21:02:24.
1>InitializeBuildStatus:
1> Touching "Debug\game.unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1>LINK : fatal error LNK1561: точка входа должна быть определена
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.95
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Ошибку гуглил, там написано, что функция должна быть не void, a int. Пытался что-то исправить - не получилось.
Прошу помочь найти ошибку. Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2012, 21:03
Ответы с готовыми решениями:

Точка входа должна быть определена
Доброго времени суток! Ошибка: точка входа должна быть определена. Функция main есть, тогда почему она возникает? Подскажите, в чем...

Точка входа должна быть определена
Всем привет ,заранее прошу прощения за тему ,которая уже поднималась ,но вот возникла ошибка , LNK1561 точка входа должна быть...

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

7
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 3
03.01.2013, 15:29
Здравствуйте, дело в том что ваша главная функция "int main(int argc, char **argv)" не возвращает никого значения, после "glutMainLoop();" напишите "return 0;".
Надеюсь что помог.
С уважением Максим.
0
ComfyMobile
 Аватар для Nixy
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
03.01.2013, 15:40
Цитата Сообщение от ThunderTeasers Посмотреть сообщение
Здравствуйте, дело в том что ваша главная функция "int main(int argc, char **argv)" не возвращает никого значения, после "glutMainLoop();" напишите "return 0;".
Надеюсь что помог.
С уважением Максим.
return mainа не обезателен,где то тут была тема что VS студия генерирует tmain(),а main не воспринимает, попробуйте заменить на tmain()
0
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 3
03.01.2013, 18:03
Чтобы она не генерировала, за своей писаниной надо следить, и если сказано что main должен возвращать 0 при удаче, значит надо сделать так, чтобы вернул.
Насчет проблемы: если это не помогает, значит покопайтесь в настройках проекта "Проект-> Свойства (имя проекта)".
С уважением Максим.

P.S. Проверил у себя, все работает.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
03.01.2013, 18:15
Цитата Сообщение от ThunderTeasers Посмотреть сообщение
Чтобы она не генерировала, за своей писаниной надо следить, и если сказано что main должен возвращать 0 при удаче, значит надо сделать так, чтобы вернул.
В main return не обязателен. И так все вернется, читайте стандарт.
Если достигнут конец функции main и нет оператора возврата, эффект такой же, как при выполнении
C++
1
return 0;
Стандарт(2003, 2011 полной версии не имею):
A return statement in main has the effect of leaving the main function (destroying any objects with auto-
matic storage duration) and calling exit with the return value as the argument. If control reaches the end
of main without encountering a return statement, the effect is that of executing

C++
1
return 0;
Добавлено через 6 минут

Не по теме:

Цитата Сообщение от ThunderTeasers Посмотреть сообщение
Чтобы она не генерировала, за своей писаниной надо следить
Не про Си++ будет сказано. Тьма что генерируется

1
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 3
03.01.2013, 20:08
Да, согласен, компилятор вставит "return 0;" в конце программы, но это смотря какой компилятор, может и не вставить, а если не вставит вернет оно мусор который ни в коем случае нам не нужен, особенно в будущем.
Да и практика будет не очень если не писать return'ы, любая функция должна возвращать значение (кроме void разумеется) и ему, как начинающему программисту надо бы это учесть в своей работе в будущем.
По теме - автор нашлось решение то?
С уважением Максим.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
04.01.2013, 00:30
То, что описывает стандарт должно выполняться, потому что это стандарт
И грош цена тому компилятору, который не соответствует стандарту 2003 (2011 еще добром нигде не реализован).

Добавлено через 17 минут
Если у Вас GUI проект, то и точка входа должна быть соответствующая, main - для консольных приложений.
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 1
12.11.2015, 16:51
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2015, 16:51
Помогаю со студенческими работами здесь

Точка входа должна быть определена
#include &lt;iostream&gt; using namespace std; template&lt;class T&gt; T min2(T a,T b) { return a&lt;b? a: b; } int main() ...

Error Точка входа должна быть определена
выводит такую ошибку, что делать? вот код #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; using...

CLR проект: error LNK1561: точка входа должна быть определена
VS 2012 Кажется, глупость, но не могу разобраться Гуглил, выяснил, что нужно какой-то из main'ов добавить. вот только куда? в главный...

LINK : fatal error LNK1561: точка входа должна быть определена
не как не могу понять в чём проблема. void subster(char v,char s,int n, int m) { int i,j; for(i=0,j=n-1; j&lt;(n-1+m); i++,j++) ...

Ошибка fatal error LNK1561: точка входа должна быть определена
пробовал добавить библиотеку stdafx.h и менял тип main с void на int не помогает .... подскажите //BitSet.h ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru