PDA

Просмотр полной версии : не могу присоеденить библиотеку


al072
10.03.2010, 11:20
Не могу скомпилировать следующий код:
#include <winsock>
#pragma comment (lib,"WSock32.Lib")
#include <iostream>


using namespace std;

void main()
{
WSAData WSData;
WSAStartup(0x101,&WSData);
SOCKET S = socket(AF_INET,SOCK_STREAM,0);
sockaddr_in SA;
SA.sin_family=AF_INET;
SA.sin_port=htons(3135);
SA.sin_addr.S_un.S_addr=INADDR_ANY;
bind(S,(sockaddr*)&SA,sizeof(SA));
listen(S,SOMAXCONN);

SOCKET NS;
while ((NS = accept(S,0,0))!=INVALID_SOCKET)
{
cout<<"-------------------->\n";
cout<<"Connected...\n";
char n = 0;
recv(NS,&n,1,0);
cout<<"Received Length = "<< int(n) <<"\n";
char* a=new char[100];
recv(NS,a,n,0);
cout<<"Received: \"";
for (int i=0;i<n;i++) { cout<<a[i]; }
cout<<"\"\n";
closesocket(NS);
cout<<"-------------------->\n";
}
closesocket(S);
int n;

компилятор ругается: fatal error C1083: Cannot open include file: 'winsock': No such file or directory

каким образом мне подключить winsock? работаю в VS2008(VC++)

zeppe1in
10.03.2010, 11:26
#include <winsock2.h>

#pragma comment (lib, "ws2_32.lib")

al072
10.03.2010, 12:52
#include <winsock2.h>

#pragma comment (lib, "ws2_32.lib")
Самое интересное, что так тоже пробовал!в таком случаее выдает другую ошибку: fatal error C1075: end of file found before the left brace '{' at 'c:\users\alex\documents\visual studio 2008\projects\exercise\exercise\exersice.cpp(9)' was matched

не понятно почему компилятор ругается на какие-то скобки?

RDL_Rider
10.03.2010, 14:07
в конце нет закрывающей? :D

al072
10.03.2010, 15:53
Да бывает... забыл скобку закрывающую функцию маин

Возникла следующая проблема. не могу скомпилить релиз так как компилятор выдает следующее сообщение:
The thread 'Win32 Thread' (0xb9c) has exited with code -1073741510 (0xc000013a).
The program '[3940] exercise.exe: Native' has exited with code -1073741510 (0xc000013a).

То есть моя программа если все в порядке должна завершиться с кодом "0". в чем может быть причина?

slesh
10.03.2010, 18:48
чтто я у тя не виду в конец слово return в котором ты передаешь статус завершения

fenixelite
10.03.2010, 19:01
Я конечно могу ошибаться(все таки C++ плохо еще знаю), но ты пробовал сделать что бы все таки main возращало что то.
int main()
.....
return 0;
? Попробуй, вдруг поможет...

al072
10.03.2010, 19:30
Пробовал конечно! на это компилятор как не странно говорит, что main() не должна ничего возвращать.. ну это с одной строны понятно, потомучто она задана как void, что само собой значит-функция не имеет аргументов и не возвращает значения!

nMonkn
10.03.2010, 22:58
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Компилил в релиз в vc2005
Проверь что точно создан консольный проэкт.
Компилил этот код.


#include <winsock2.h>
#pragma comment (lib,"ws2_32.lib")
#include <iostream>

using namespace std;

void main()
{
WSAData WSData;
WSAStartup(0x101,&WSData);
SOCKET S = socket(AF_INET,SOCK_STREAM,0);
sockaddr_in SA;
SA.sin_family=AF_INET;
SA.sin_port=htons(3135);
SA.sin_addr.S_un.S_addr=INADDR_ANY;
bind(S,(sockaddr*)&SA,sizeof(SA));
listen(S,SOMAXCONN);

SOCKET NS;
while ((NS = accept(S,0,0))!=INVALID_SOCKET)
{
cout<<"-------------------->\n";
cout<<"Connected...\n";
char n = 0;
recv(NS,&n,1,0);
cout<<"Received Length = "<< int(n) <<"\n";
char* a=new char[100];
recv(NS,a,n,0);
cout<<"Received: \"";
for (int i=0;i<n;i++) { cout<<a[i]; }
cout<<"\"\n";
closesocket(NS);
cout<<"-------------------->\n";
}
closesocket(S);
int n;
}

M_script_
11.03.2010, 05:53
Возникла следующая проблема. не могу скомпилить релиз так как компилятор выдает следующее сообщение:
The thread 'Win32 Thread' (0xb9c) has exited with code -1073741510 (0xc000013a).
The program '[3940] exercise.exe: Native' has exited with code -1073741510 (0xc000013a).

Не может компилятор такого выдать. Это дебаггер после запуска выдает наверное.
"void main()" измени на "int main()" и возврат в конце добавь.

Еще погугли WSACleanup(void) и shutdown(SOCKET, int)

al072
15.03.2010, 16:29
Вопрос решился путем ребилда проекта! больше ошиок нет все компилиться и работает! всем спасибо за помощь!!!