Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[winsock] Pierwsze kroki i kicha : error C2065: 'stderr' : undeclared identifier error C3861: 'fprintf': identifier not found

Ostatnio zmodyfikowano 2013-02-24 20:46
Autor Wiadomość
tookie009
Temat założony przez niniejszego użytkownika
[winsock] Pierwsze kroki i kicha : error C2065: 'stderr' : undeclared identifier error C3861: 'fprintf': identifier not found
» 2013-02-22 20:24:40
Witajcie, właśnie chciałem zacząć się uczyć Winsocka, ale już przy samej konfiguracji mam problemy. Otóż wyskakuje mi problem taki jak w temacie:
error C2065: 'stderr' : undeclared identifier  error C3861: 'fprintf': identifier not found

Próbowałem linkować zarówno wsock32.lib jak i winsock32.lib. Niestety bez efektów. Z góry dziękuje za pomoc.
P-76739
DejaVu
» 2013-02-22 23:29:33
To nie jest kwestia linkera, tylko kwestia odpowiedniego includa.
C/C++
#include <cstdio>
P-76759
tookie009
Temat założony przez niniejszego użytkownika
» 2013-02-24 20:34:38
ok, dziekuję, ale znowu mam problem. mój kod:

C/C++
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
#include <string>

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

#include <winsock.h>

int main()
{
    WSADATA wsaData; // jeśli to nie zadziała
    //WSAData wsaData; // użyj tego
   
    if( WSAStartup( MAKEWORD( 1, 1 ), & wsaData ) != 0 )
    {
        fprintf( stderr, "WSAStartup failed.\n" );
        exit( 1 );
    }
   
    struct sockaddr {
        unsigned short sa_family; // rodzina adresów, AF_xxx
        char sa_data[ 14 ]; // 14-bajtowy adres protokołowy
    };
   
    struct sockaddr_in {
        short int sin_family; // rodzina adresów
        unsigned short int sin_port; // numer portu
        struct in_addr sin_addr; // adres internetowy
        unsigned char sin_zero[ 8 ]; // dla zachowania rozmiaru struct sockaddr
    };
   
    struct sockaddr_in my_addr;
   
    my_addr.sin_family = AF_INET; // host byte order
    my_addr.sin_port = htons( MYPORT ); // short, network byte order
    inet_aton( "10.12.110.57", &( my_addr.sin_addr ) );
    memset( &( my_addr.sin_zero ), '\0', 8 ); // wyzeruj resztę struktury
   
   
    //Tu dalsza część programu
    return 0;
}

A więc jak widzicie, próbowałem tylko skopiować kod z kursu winsocka.
Otrzymuje nastepujące błędy
1>c:\users\zzz\desktop\sock\sock\s.cpp(44): error C2065: 'MYPORT' : undeclared identifier
1>c:\users\zzz\desktop\sock\sock\s.cpp(45): error C2660: 'inet_addr' : function does not take 2 arguments

zamiast inet_atom próbowałem użyć też  inet_addr(), ale ta funkcja nie korzysta z dwóch argumentów...

Patrzyłem też na inne kursy dostępne w sieci i w ogóle nie mogę wystartować, żeby coś faktycznie zaczęło wychodzić. Próbowałem też z jednego tematu z winapi - tam też był temat o winsock - coś robić, ale tam z kolei jest wersja 2.2.
I niestety, że tak wszystko to na niczym spełza, troszeczkę się nie zniechęcam. Do tej pory zrobiłem całe kursy podstawowe, i kurs allegro. To było przed około 2 laty. Teraz zacząłem WINapi, ale zauważyłem, że w gruncie rzeczy potrzebuję do mojego projektu winsocka, dlatego chciałem to okiełznać. Z takim podstawami jest sens dalej próbować ?

PS.
Moje środowisko to MS Visual Studio 2010
P-76911
pekfos
» 2013-02-24 20:46:36
Chyba jeszcze nie skopiowałeś wszystkich kawałków kodu z kursu ;)
P-76913
« 1 »
  Strona 1 z 1