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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 407, средняя оценка - 4.67
first_zee
0 / 0 / 0
Регистрация: 06.06.2009
Сообщений: 3
#1

unresolved external symbol _main - C++

06.06.2009, 23:50. Просмотров 51653. Ответов 18
Метки нет (Все метки)

Создал новый проект в visual c++ запускаю пустой проект а при запуске выдает
Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib
Error 2 fatal error LNK1120: 1 unresolved externals C:\Documents and Settings\first_zee\Мои документы\Visual Studio 2005\Projects\1\Debug\1.exe
мои действия
1 обшарил весь нет
2 перепробовал все варианты
3 даже переустановил вижул
4......жутко матерился
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2009, 23:50     unresolved external symbol _main
Посмотрите здесь:

Unresolved external symbol _SnmpListen@8 referenced in function _main - C++
Привет! Среда разработки VS 2012 Тип проекта - консольное приложение Код: /* #include <string> #include...

Error LNK2001: "unresolved external symbol _main" - C++
вот программа: #include <iostream.h> #include <stdlib.h> #include <time.h> class Mas_2d { public: ...

Unresolved external symbol, unresolved token - C++
Всем привет. У меня тут такое дело: // learncpp.cpp : main project file. #include "stdafx.h" int main() { const int...

Ошибка [Linker Error] Unresolved external '_main' referenced - C++
Ошибка в програме.... Unresolved external '_main' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\C0X32.OBJ Листинг:...

Ошибка: Unresolved external '_main' referensed from d:c5libcox32.obj - C++
Unresolved external '_main' referensed from d:c5libcox32.obj вот текст но текст уж точно правильный(каждый символ проверил) #define...

Unresolved external symbol - C++
В общем, стандартная ошибка линкера: 5>lib1.lib(a.obj) : error LNK2001: неразрешенный внешний символ "_lol" В a.c написана...

Unresolved external symbol - C++
header.h: #include "stdafx.h" #include <iostream> #include <string> using namespace std; class CGraphicsObject { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
07.06.2009, 00:04     unresolved external symbol _main #2
Что значит "запускаю пустой проэкт". Вы пытаетесь скомпилировать пустоту ?
first_zee
0 / 0 / 0
Регистрация: 06.06.2009
Сообщений: 3
07.06.2009, 00:07  [ТС]     unresolved external symbol _main #3
даже не пустоту не компилирует(обычно и пустоту компилировал
)
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
07.06.2009, 00:29     unresolved external symbol _main #4
в каждой программе должна быть функция main, ругается, что ее нет
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
07.06.2009, 00:40     unresolved external symbol _main #5
Вот Вам пример простейшей программы:

C++
1
2
3
4
5
6
7
8
#include <stdio.h> /* Для того, чтобы функция printf могла работать */
 
int main(int argc, char * argv []) /* Main должен быть в любой программе! */
{ /* Открываем тело функции Main */
    printf("Hello World!\n"); /* Функция printf печатает сообщение на экран */
 
    return 0; /* Возвращаем нулевое значение операционке */
} /* Закрываем тело функции Main */
Добавлено через 4 минуты 32 секунды
Во-первых, компилятор не может компилировать пустоту.
Во-вторых, компилятор выдает сообщение об ошибке из-за того, что Вы пытаетесь откомпилировать пустоту. Этой ошибкой компилятор пытается у Вас спросить примерно это: "ЧТО МНЕ КОМПИЛИРОВАТЬ ?! ТЫ ЖЕ НИЧЕГО НЕ НАПИСАЛ!!!".
first_zee
0 / 0 / 0
Регистрация: 06.06.2009
Сообщений: 3
07.06.2009, 12:10  [ТС]     unresolved external symbol _main #6
хорошо допустим хотел зто
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{
    for(;;)
    {
    POINT a;
    GetCursorPos(&a);
    Sleep(100);
    cout<<a.x<<' '<<a.y;
    if(a.x<500)
        break;
    }
 
};
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
07.06.2009, 13:22     unresolved external symbol _main #7
я рад за тебя! пропиши в свойствах проекта точку входа - функцию main
D1m0n
3 / 3 / 1
Регистрация: 10.05.2009
Сообщений: 9
07.06.2009, 20:31     unresolved external symbol _main #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
По моему такая ошибка возникает когда пытаешься запустить консольное приложение в проекте другого типа, т.е. Win32 Project, а не Win32 Console Project
(в Visual Studio по крайней мере)
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
07.06.2009, 21:08     unresolved external symbol _main #9
возникает. а все потому, что процедуры входа по-разному описаны
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
04.02.2010, 20:54     unresolved external symbol _main #10
Доброго времени суток ... прошу помощи вот по такому вопросу ... читаю книгу Юрия Щупака Win32 API ... там есть пример программы hello, world ... и вот компилятор выдаёт мне две ошибки

Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib

Error 2 fatal error LNK1120: 1 unresolved externals C:\Users\STRELOK\Documents\Visual Studio 2008\Projects\Hello World 1\Debug\Hello World 1.exe


вот исходник:

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
#include <windows.h> 
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdLine)
{
    HWND hMainWnd;
    char classname[] = "MyClass";
    MSG msg;
    WNDCLASSEX wc;
    wc.cbSize           = sizeof(wc);
    wc.style            = CS_HREDRAW|CS_VREDRAW;
    wc.lpfnWndProc      = WndProc;
    wc.cbClsExtra       = 0;
    wc.cbWndExtra       = 0;
    wc.hInstance        = hInstance;
    wc.hIcon            = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor          = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName     = NULL;
    wc.lpszClassName    = classname;
    wc.hIconSm          = LoadIcon(NULL, IDI_APPLICATION);
 
 
    if(!RegisterClassEx(&wc))
    {
        MessageBox(NULL, "Cannot register class", "Error", MB_OK);
        return 0;
    }
    
    hMainWnd = CreateWindow(classname, "new", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 
        CW_USEDEFAULT, 0, (HWND)NULL, (HMENU)NULL, (HINSTANCE)hInstance, NULL);
 
    if(!hMainWnd)
    {
        MessageBox(NULL, "Cannot create window", "Error", MB_OK);
        return 0;
    }
 
    ShowWindow(hMainWnd, nCmdLine);
 
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return msg.wParam;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;
 
    switch (uMsg)
    {
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rect);
        DrawText(hDC, (LPCSTR)"Hello World 1", -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
 
        EndPaint(hWnd, &ps);
        break;
    
    case WM_CLOSE:
        DestroyWindow(hWnd);
        break;
        
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
 
    default:
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
 
    return 0;
}
в свойствах ставлю мультибайт ... среда 2008 года ...

Заранее спасибо )
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
05.02.2010, 03:17     unresolved external symbol _main #11
Используется Unicode-версия класса окна (WNDCLASSEX), а полю ws.lpszClassName присваиваешь ANSI строку . . . Еще есть некоторые ошибки. Так будет правильнее:

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
//////////////////////////////////////////////////////////////////////////////
#define _UNICODE
#define UNICODE
//////////////////////////////////////////////////////////////////////////////
#include <windows.h> 
#include <tchar.h>
//////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
//////////////////////////////////////////////////////////////////////////////
 
INT WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR lpCmdLine, INT iShowCmd)
{
    MSG msg;
    HWND hMainWnd;
    WNDCLASSEX wc;
 
    //////////////////////////////////////////////////////////////////////////////
    wc.cbSize               = sizeof(wc);
    wc.cbClsExtra           = NULL;
    wc.cbWndExtra           = NULL;
    wc.hbrBackground        = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.hCursor              = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
    wc.hIcon                = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
    wc.hIconSm              = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
    wc.hInstance            = hInstance;
    wc.lpfnWndProc          = WndProc;
    wc.lpszClassName        = _T("MyClass");
    wc.lpszMenuName         = NULL;
    wc.style                = CS_HREDRAW | CS_VREDRAW;
    //////////////////////////////////////////////////////////////////////////////
 
 
    if(!RegisterClassEx(&wc))
    {
        MessageBox(NULL, _T("Cannot register class"), _T("Error"), MB_ICONSTOP);
        return FALSE;
    }
 
    hMainWnd = CreateWindowEx(NULL, _T("MyClass"), _T("new"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 
        CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
 
    if(!hMainWnd)
    {
        MessageBox(NULL, _T("Cannot create window"), _T("Error"), MB_ICONSTOP);
        return FALSE;
    }
 
    ShowWindow(hMainWnd, iShowCmd);
 
    while(GetMessage(&msg, NULL, NULL, NULL))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return msg.wParam;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;
 
    switch (uMsg)
    {
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);
        //////////////////////////////////////////////////////////////////////////////
        GetClientRect(hWnd, &rect);
        DrawText(hDC, _T("Hello World !"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
        //////////////////////////////////////////////////////////////////////////////
        EndPaint(hWnd, &ps);
        break;
 
    case WM_CLOSE:
        DestroyWindow(hWnd);
        break;
 
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
 
    default:
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
 
    return FALSE;
}
nazavrik
22 / 22 / 2
Регистрация: 17.09.2008
Сообщений: 130
05.02.2010, 12:35     unresolved external symbol _main #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от I.B. Посмотреть сообщение
Доброго времени суток ... прошу помощи вот по такому вопросу ... читаю книгу Юрия Щупака Win32 API ... там есть пример программы hello, world ... и вот компилятор выдаёт мне две ошибки

Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib

Error 2 fatal error LNK1120: 1 unresolved externals C:\Users\STRELOK\Documents\Visual Studio 2008\Projects\Hello World 1\Debug\Hello World 1.exe


в свойствах ставлю мультибайт ... среда 2008 года ...

Заранее спасибо )
У тебя в настройках стоит консольный проект. Отключи или переключи на виндосовский в Properties -> Linker -> System -> SubSystem -> NotSet (или Windows)
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
05.02.2010, 23:52     unresolved external symbol _main #13
nazavrik, спасибо )))
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
07.02.2010, 00:17     unresolved external symbol _main #14
Цитата Сообщение от Search.. Посмотреть сообщение
Используется Unicode-версия класса окна (WNDCLASSEX), а полю ws.lpszClassName присваиваешь ANSI строку . . . Еще есть некоторые ошибки. Так будет правильнее:

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
//////////////////////////////////////////////////////////////////////////////
#define _UNICODE
#define UNICODE
//////////////////////////////////////////////////////////////////////////////
#include <windows.h> 
#include <tchar.h>
//////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
//////////////////////////////////////////////////////////////////////////////
 
INT WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR lpCmdLine, INT iShowCmd)
{
    MSG msg;
    HWND hMainWnd;
    WNDCLASSEX wc;
 
    //////////////////////////////////////////////////////////////////////////////
    wc.cbSize               = sizeof(wc);
    wc.cbClsExtra           = NULL;
    wc.cbWndExtra           = NULL;
    wc.hbrBackground        = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.hCursor              = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
    wc.hIcon                = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
    wc.hIconSm              = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
    wc.hInstance            = hInstance;
    wc.lpfnWndProc          = WndProc;
    wc.lpszClassName        = _T("MyClass");
    wc.lpszMenuName         = NULL;
    wc.style                = CS_HREDRAW | CS_VREDRAW;
    //////////////////////////////////////////////////////////////////////////////
 
 
    if(!RegisterClassEx(&wc))
    {
        MessageBox(NULL, _T("Cannot register class"), _T("Error"), MB_ICONSTOP);
        return FALSE;
    }
 
    hMainWnd = CreateWindowEx(NULL, _T("MyClass"), _T("new"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 
        CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
 
    if(!hMainWnd)
    {
        MessageBox(NULL, _T("Cannot create window"), _T("Error"), MB_ICONSTOP);
        return FALSE;
    }
 
    ShowWindow(hMainWnd, iShowCmd);
 
    while(GetMessage(&msg, NULL, NULL, NULL))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return msg.wParam;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;
 
    switch (uMsg)
    {
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);
        //////////////////////////////////////////////////////////////////////////////
        GetClientRect(hWnd, &rect);
        DrawText(hDC, _T("Hello World !"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
        //////////////////////////////////////////////////////////////////////////////
        EndPaint(hWnd, &ps);
        break;
 
    case WM_CLOSE:
        DestroyWindow(hWnd);
        break;
 
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
 
    default:
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
 
    return FALSE;
}
Search, а для чего вы определили макрос юникод и везде где есть char-строки делаете преобразование типов? И почему два макроса?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2010, 00:38     unresolved external symbol _main
Еще ссылки по теме:

unresolved external symbol - C++
Добрый день. :) Стоит задача разработать шаблонный класс комплексных чисел. Одним из пунктов является решение квадратного уравнения с...

Unresolved external symbol - C++
Main.cpp: #include &lt;iostream&gt; #include &quot;cone.h&quot; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); float r,...

Unresolved external symbol - C++
Читаю книгу по программированию в MFC, хоть она и 13летней давности В общем дошол до создания окна через Resource и создание класса для...

Unresolved external symbol - C++
Я понимаю что ошибка LNK2019 обычно означает что есть объявление функции, но нет ее тела. В моем случае у меня как то через раз это...

Unresolved external symbol - C++
Error 1 error LNK2001: unresolved external symbol &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class...


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

Или воспользуйтесь поиском по форуму:
nazavrik
22 / 22 / 2
Регистрация: 17.09.2008
Сообщений: 130
07.02.2010, 00:38     unresolved external symbol _main #15
По поводу char-строк.

Макрос _T() работает так: если проект использует ANSI строки, то он оставляет строки без изменений, а если проект использует UNICODE строки, то он преобразовывает ANSI строку в UNICODE.

По умолчанию в последних версиях VS стоит "Use Unicode Character Set". Если ты переключил на "Use Multi-Byte Character Set" (а ты переключил ), то никакого преобразования нет. По факту избыточный код.
Yandex
Объявления
07.02.2010, 00:38     unresolved external symbol _main
Ответ Создать тему
Опции темы

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