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

Ошибка LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки С++ http://www.cyberforum.ru/cpp-beginners/thread998449.html
На вход подаётся две строки. Во второй строке удаляются все гласные которые стоят на чётных позициях в первой строке. Потом первая строка переворачивается и к ней добаваляется вторая перевёрнутая строка(уже без гласных). И выводится эта одна строка.
C++ 4 прямоугольника и клиенское окно Не получается выйти с клиентской области при навигации курсора, без закрашивания (нужно чтобы не закрашивал при выходе с клиентской области(окна), выходя за границы области курсором) Возможно не доходит сообщение:) #include "windows.h" LRESULT CALLBACK WindowProc( HWND, UINT, WPARAM, LPARAM); http://www.cyberforum.ru/cpp-beginners/thread998447.html
C++ Пожалуйста : небольшая ошибка в цикле!
Доброго утра! Помогите, пожалуйста. Вот код: #include <stdio.h> #include <iostream.h> #include <conio.h> int main() { int k,i,j,n,tmp,score,score1,score2,tmp_score1,tmp_score2,h,w,tmp_score; cin>>k;
C++ Русский символы в C++
ОС Ubuntu 12.04.Компилятор g++.Редактор vim. Код программы: #include <iostream> int main() { using namespace std; cout<<"Введите русский символ:";
C++ Как сделать доступными функции из другого проекта инклудом .h файла http://www.cyberforum.ru/cpp-beginners/thread998394.html
В одном решении Visual Studio 2010 есть два проекта, мне понадобилось включить функции и глобальные переменные из проекта №1 в проекта №2 . Во втором проекте сделал просто инклуд .h файла с прототипами нужных функций #include "../PUT_do_proekta№1/main.h" В результате получил ошибки типа error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl gws_vars(void)" (?gws_vars@@YAXXZ)...
C++ cin.get в чем отличие ? Всем доброго времени суток, подскажите в чем отличие в этих строках: char a; cin.get(a); a = cin.get(); подробнее

Показать сообщение отдельно
Oleg34
1 / 1 / 0
Регистрация: 22.12.2010
Сообщений: 128
05.11.2013, 12:43     Ошибка LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
Здравствуйте! При запуске программы для использования классических блокирующих сокетов в MS Visual C++, выдает ошибку LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup.
Перерыл форум, но ничего подходящего для решения проблемы не нашел.
У меня Microsoft Visual Studio 2010 Premium, скачана с оф.сайта. Проект создаю стандартно:
Ctr+N ->Visual C++ ->Консольное приложение Win32 ->Даю_имя -> Далее ->Консольное приложение Win32, Предварительно скомпилированный заголовок.
Вот код проекта. Сам проект в прикрепленном файле.
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
// serverWinSock.cpp: определяет точку входа для консольного приложения.
//Пример использования классических блокирующих сокетов в MS Visual C
 
 
#include "stdafx.h"
#include <WinSock2.h>
#include<stdio.h>
#include<WinBase.h>
#pragma comment (lib, "ws2_32.lib")
#define BUFNAME 5 // длина буфера приема
#define HOSTNAME "localhost" //имя сервера
 
//int _tmain(int argc, _TCHAR* argv[])
int main(int argc, char** argv)
{
 
    SOCKET mysock,mysock1; //две переменные типа "сокет"
    WSADATA wsaData; //данные возвращаемые ф-ей инициализации
    struct sockaddr_in myaddr,myaddr1; // адреса сокетов
    int err,len1,len2; //Код ошибки длина сообщения
    char buf[BUFNUM+1]={'_','_','_','_','_','\0'};//сначала в буфере только прочерки и 
 
ноль в конце
    struct hostent FAR *hp;
 
    err=WSAStartup(0x0101, &wsaData); // инициализируем библиотеку Winsock
 
    if(err<0)
    {
        printf("Winsock starting error %i", WSAGetLasatError());
        exit(1);
    }
 
    mysock=socket(AF_INET,SOCK_STREAM,0); // создали сокет
    //область имен -INET, тип-сустановлением соединения, протокол-по умолчанию
 
    if (mysock==INVALID_SOCKET)
    {
        printf("\nCannot create socket, error %i\n",WSAGetLastError());
        WSACleanup();
        exit(1);
    }
 
    hp=gethostbyname(HOSTNAME); // перевели имя хоста в адрес
    memcpy(&myaddr.sin_addr,hp->h_addr,hp->h_length);
    myaddr.sin_family=hp->h_addrtype;
    //myaddr.sin_addr.s_addr=INADDR_ANY;//если хотим устанавливать
    //соединение с любой сетевой службой. то последние две строки
    //надо заменить данной функцией
    myaddr.sin_port=htons(1000);//номер порта переведенный в "сетевой порядок"
    err=bind(mysock,(struct sockaddr *) &myaddr, sizeof(myaddr)); // связываем сокет
 
    if(err<0)
    {
        printf("\nCannot bind socket, error %i\n",WSAGetLastError());
        WSACleanup();
        exit(1);
    }
 
    ioctlsocket(mysock,FIONBIO,0);// устанавливаем блокирующий режим
    printf("\nListening... \n");
    err=listen(mysock,1);// переводим сокет в прослушивающий режим
                         //длина очереди-только один вызов
 
    if (err<0)
    {
        printf("\nCannot listen socket, error %i\n",WSAGetLastError());
        WSACleanup();
        exit(1);
    }
    len1=sizeof(myaddr1);
    mysock1=accept(mysock, (struct sockaddr FAR*)&myaddr1,&len1);
    // приняли запрос на соединение
    // accept ждет, пока не будет выполнен connect клиента
 
    if(mysock==INVALID_SOCKET)
    {
        printf("\nError accepting connection, error %i\n",WSAGetLastError());
        WSACleanup();
        exit(1);
    }
    printf("\nAccepted %i.%i.%i.%i\n",myaddr1.sin_addr_.S_un.S_un_b.s_b1,
                                      
 
myaddr1.sin_addr_.S_un.S_un_b.s_b2,
                                      
 
myaddr1.sin_addr_.S_un.S_un_b.s_b3,
                                      
 
myaddr1.sin_addr_.S_un.S_un_b.s_b4,);
    //kто нас вызвал
 
    Sleep(1000);
    printf("\nWaiting message... \n");
    len1=0;
    while(len1<BUFNUM)// принимаем соообщение символ за символом
    {
        len2=recv(mysock1,&buf[len1],BUFNUM-len1,0);
        len1+=len2;
        printf("\nReceived message: \t%s,\tlength is %i\n",buf,len2);
            //принять всю строку нельзя, так как сообщения в сети могут
            //дробится на пакеты и наоборот слипаться
    }
    buf[BUFNUM]='\0'; // конец строки
    Sleep(1000); //чтобы на экране все менялось не слишком быстро
    printf("\nReceived message: \t%s,\tlength is %i\n",buf,len1);
    shutdown(mysock1,2); //закрыли сокет для чтения и для записи-2
    closesocket(mysock1);
    closesocket(mysock);
    WSACleanup();//закрыли библиотеку
    Sleep(5000);//подождали 5 сек
 
 
    return 0;
}
Что я не так сделал? И почему при компиляции проекта компилируется _tmain(), а не main(). И имеет ли это какое либо принципиальное значение. Я пробовал по разному. В коде видно, что закоментил функции.
Заранее всем спасибо.
Вложения
Тип файла: zip serverWinSock.zip (1.34 Мб, 4 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru