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

unresolved external symbol _main - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 407, средняя оценка - 4.67
first_zee
0 / 0 / 0
Регистрация: 06.06.2009
Сообщений: 3
06.06.2009, 23:50     unresolved external symbol _main #1
Создал новый проект в 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 C++
C++ Ошибка: Unresolved external '_main' referensed from d:c5libcox32.obj
C++ unresolved external symbol, unresolved token
C++ unresolved external symbol
Unresolved external symbol C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Search..
Заказ софта
 Аватар для Search..
338 / 183 / 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..
Заказ софта
 Аватар для Search..
338 / 183 / 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..
Заказ софта
 Аватар для Search..
338 / 183 / 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
 Аватар для 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-строки делаете преобразование типов? И почему два макроса?
nazavrik
 Аватар для 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" (а ты переключил ), то никакого преобразования нет. По факту избыточный код.
Paulie
Айхрень...
 Аватар для Paulie
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
18.05.2010, 16:20     unresolved external symbol _main #16
Хм... почитал тему, но вопрос собственно аналогичный вопросу топикстартера.

Вообще ситуация какая-то странная, толи перегрев, толит ещё что в голове у меня не так:

в проекте Visual Studio 2010 прописан Project Properties->C\C++->General->Additional Include Directories = $(SolutionDir)list\, вот, в данном каталоге лежат файлики mylist.h & mylist.cpp, в них расписаны шаблоны классов для динамических списков моего проекта.

Добавляю в эти файлики в заголовочный, допустим, функцию int vvv();, в файл исходного кода int vvv() {int i=123; return i;}, в итоге получаю:

1> adding resource. type:MANIFEST, name:2, language:0x0409, flags:0x30, size:2
1>DBFParser.obj : error LNK2019: unresolved external symbol "int __cdecl vvv(void)" (?vvv@@YAHXZ) referenced in function "protected: void __fastcall DBFParser::ParseString(char *,class myList<char *> *)" (?ParseString@DBFParser@@IAIXPADPAV?$myList@PAD@@@Z)
1>C:\Users\PA\Documents\Visual Studio 2010\Projects\ReestrConverter\Debug\DBFParser.dll : fatal error LNK1120: 1 unresolved externals
Видимо он не видит файлика cpp, это крайне печально, ему что, надо файлик lib собрать и законнектить? Я прочитал уже с десяток форумов, где-топишут про кодировку, где-топро либы... Что-то я подзапутался))
luk4196
 Аватар для luk4196
5 / 5 / 0
Регистрация: 29.11.2009
Сообщений: 42
19.05.2010, 20:57     unresolved external symbol _main #17
first_zee
Доброго времени суток ... прошу помощи вот по такому вопросу ... читаю книгу Юрия Щупака 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


ти какой проект создаеш Win32 Console Application, а нужно Win32 Project
makkabi
 Аватар для makkabi
-32 / 10 / 2
Регистрация: 05.12.2009
Сообщений: 152
26.10.2010, 23:21     unresolved external symbol _main #18
Цитата Сообщение от luk4196 Посмотреть сообщение
Win32 Console Application, а нужно Win32 Project
у меня и в Win32 project'e была та же ерунда..
когда я изменил в настройках подсистему, окошко заработало, но выводило бред
осталось найти где изменить кодировку
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2010, 23:36     unresolved external symbol _main
Еще ссылки по теме:

Unresolved external symbol _SnmpListen@8 referenced in function _main C++
C++ Ошибка [Linker Error] Unresolved external '_main' referenced
Unresolved external symbol C++

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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
26.10.2010, 23:36     unresolved external symbol _main #19
Цитата Сообщение от Paulie Посмотреть сообщение
Видимо он не видит файлика cpp, это крайне печально, ему что, надо файлик lib собрать и законнектить? Я прочитал уже с десяток форумов, где-топишут про кодировку, где-топро либы... Что-то я подзапутался))
cpp в проект надо включать явно, либо через libу
Yandex
Объявления
26.10.2010, 23:36     unresolved external symbol _main
Ответ Создать тему
Опции темы

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