Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   не могу присоеденить библиотеку (https://forum.antichat.xyz/showthread.php?t=185500)

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

Цитата:

Сообщение от zeppe1in
#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

Цитата:

Сообщение от al072
Возникла следующая проблема. не могу скомпилить релиз так как компилятор выдает следующее сообщение:
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)


Время: 15:29