Просмотр полной версии : не могу присоеденить библиотеку
Не могу скомпилировать следующий код:
#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")
#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
Да бывает... забыл скобку закрывающую функцию маин
Возникла следующая проблема. не могу скомпилить релиз так как компилятор выдает следующее сообщение:
The thread 'Win32 Thread' (0xb9c) has exited with code -1073741510 (0xc000013a).
The program '[3940] exercise.exe: Native' has exited with code -1073741510 (0xc000013a).
То есть моя программа если все в порядке должна завершиться с кодом "0". в чем может быть причина?
чтто я у тя не виду в конец слово return в котором ты передаешь статус завершения
fenixelite
10.03.2010, 19:01
Я конечно могу ошибаться(все таки C++ плохо еще знаю), но ты пробовал сделать что бы все таки main возращало что то.
int main()
.....
return 0;
? Попробуй, вдруг поможет...
Пробовал конечно! на это компилятор как не странно говорит, что main() не должна ничего возвращать.. ну это с одной строны понятно, потомучто она задана как void, что само собой значит-функция не имеет аргументов и не возвращает значения!
========== 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)
Вопрос решился путем ребилда проекта! больше ошиок нет все компилиться и работает! всем спасибо за помощь!!!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot