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

Ошибка LNK2019 - C++

Восстановить пароль Регистрация
 
NewbieTryToTape
Сообщений: n/a
26.03.2012, 13:39     Ошибка LNK2019 #1
Добрый день. Недавно начала изучать С++ (необходимо для научной деятельности). Программирую я в Visual Studio 2010 Express Напечатал я пример из учебника, код таков:
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
#include <windows.h>
#include <iostream>
#include <new>
#include "converts.h"
using std::cout;
using std::cin;
using std::endl;
using std::strlen;
using std::bad_alloc;
    void print_cp866 (const char *str, short int x)
    {
    char *buf;
    try
    {
        buf = new char[strlen(str) + 1];
    }
    catch (bad_alloc err)
    {
        return;
    }
    CharToOemA (str, buf);
    switch(x)
    {
    case 0: cout << buf; break;
    case 1: cout << buf << endl; break;
    case 2: cout << buf << " "; break;
    default: cout << buf; break;
    }
    delete [] buf;
    }
    void convert_to_cp866(char *str)
    {
    char *buf;
    try
    {
        buf = new char[strlen(str) + 1];
    }
    catch (bad_alloc err)
    {
        return;
    }
    CharToOemA (str, buf);
    std::strcpy (str, buf);
    strcpy_s (str, strlen(str)+1, buf);
    delete [] buf;
    }
    void convert_to_cp1251 (char *str)
    {
        char *buf;
        try
        {
            buf = new char[strlen(str) + 1];
        }
        catch (bad_alloc err)
        {
            return;
        }
        CharToOemA (str, buf);
        std::strcpy (str, buf);
        strcpy_s (str, strlen(str)+1, buf);
        delete [] buf;
    }
К нему же я подключил заголовочный файл converts.h. У него код такой:

C++
1
2
3
4
5
6
7
8
#ifndef CONVERTS_H 
#define CONVERTS_H
const short int PRINT_ENDL = 1;
const short int PRINT_SPACE = 2;
void print_to_cp866 (char *str, short int x = 0);
void convert_to_cp1251 (char *str);
void convert_to_cp866 (char *str);
#endif
По идее, в конечном счете, программа должна переводить символы из одной кодировки в другую или печатать символы в одной кодировке (cp866). При попытке компиляции выводится следующее:

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
1>c:\users\zavelsk\documents\visual studio 2010\Projects\fuck_10\Debug\fuck_10.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

Полазил я по форумам и все попытался следовать их рекомендациям, и все без толку. И пытался я вид подсистемы менять (с консоли на windows). Проблема не решилась. Вот результат:

1>c:\users\zavelsk\documents\visual studio 2010\projects\fuck_10\fuck_10\lolka_11.cpp(43): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\string.h(105): см. объявление "strcpy"
1>c:\users\zavelsk\documents\visual studio 2010\projects\fuck_10\fuck_10\lolka_11.cpp(59): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\string.h(105): см. объявление "strcpy"
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup
1>c:\users\zavelsk\documents\visual studio 2010\Projects\fuck_10\Debug\fuck_10.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

Пытался я отключить предварительно откомпилированные заголовки - не помогло.
После Попытался я также подключить заголовочный файл stdAfx.h (что при включенных, что и при отключенных заголовках) :

#include "stdAfx.h"

компилятор его не находит. Вообщем, что делать - понятия не имею. Очень сильно рассчитываю на вашу помощь. Заранее премногом благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2012, 13:39     Ошибка LNK2019
Посмотрите здесь:

C++ Ошибка LNK2019
Ошибка LNK2019 C++
Ошибка LNK2019 C++
Ошибка LNK2019 C++
Ошибка LNK2019 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
26.03.2012, 13:41     Ошибка LNK2019 #2
а где у тебя функция main ???
оно же тебе русским по белому грит: невижу _main.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
26.03.2012, 13:42     Ошибка LNK2019 #3
создать пустой проект без компилированных заголовков
где точка входа в приложение?
и оформите код тегами нормально
берете переводчик и переводите что пишет вам компилятор, он не просто так пишет.
нету функции main
-=ЮрА=-
Заблокирован
Автор FAQ
26.03.2012, 14:35     Ошибка LNK2019 #4
NewbieTryToTape, приведи код полностью ...
Как вариант запиши всё вот так
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
#include <windows.h>
#include <iostream>
#include <new>
#include "converts.h"
using namespace std;
using std::bad_alloc;
 
void print_cp866 (const char *str, short int x)
{
    char *buf;
    try
    {
        buf = new char[strlen(str) + 1];
    }
    catch (bad_alloc &err)
    {
        cout<<err.what()<<endl;
        return;
    }
    CharToOemA(str, buf);
    switch(x)
    {
        case 0: cout << buf; break;
        case 1: cout << buf << endl; break;
        case 2: cout << buf << " "; break;
        default: cout << buf; break;
    }
    delete [] buf;
}
void convert_to_cp866(char *str)
{
    char *buf;
    try
    {
        buf = new char[strlen(str) + 1];
    }
    catch (bad_alloc &err)
    {
        cout<<err.what()<<endl;
        return;
    }
    CharToOemA(str, buf);
    strcpy (str, buf);
    delete [] buf;
}
void convert_to_cp1251 (char *str)
{
    char *buf;
    try
    {
        buf = new char[strlen(str) + 1];
    }
    catch (bad_alloc &err)
    {
        cout<<err.what()<<endl;
        return;
    }
    CharToOemA(str, buf);
    strcpy (str, buf);
    delete [] buf;
}
NewbieTryToTape
Сообщений: n/a
26.03.2012, 14:51     Ошибка LNK2019 #5
Все, я разобрался. Я создал дополнительный файл main.cpp. Просто, оказывается, я не дочитал до конца. Спасибо вам за помощь=)
Yandex
Объявления
26.03.2012, 14:51     Ошибка LNK2019
Ответ Создать тему
Опции темы

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