funktion außerhalb einer klasse aufrufen



  • hallo, ich möchte innerhalb der operation einer klasse eine funktion aufrufen,
    die in keiner klasse definiert ist. Genaugenommen ist die funktion in einer library.
    konkret geht es dabei um sockets. Code-Schnippsel:

    Client::Client(){
        cout << "Client is da *wink*";
        server = socket(AF_INET, SOCK_STREAM, 0);
        if (server == -1){
            perror("socket() failed");
            return;
        }
    }
    

    der fehler:

    D:\Eigene Dateien\codeblocks\Socket\Client.h:21: error: `AF_INET' undeclared (first use this function)
    D:\Eigene Dateien\codeblocks\Socket\Client.h:21: error: (Each undeclared identifier is reported only once for each function it appears in.)
    D:\Eigene Dateien\codeblocks\Socket\Client.h:21: error: `SOCK_STREAM' undeclared (first use this function)
    D:\Eigene Dateien\codeblocks\Socket\Client.h:21: error: `socket' undeclared (first use this function)
    D:\Programme\CodeBlocks\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\include\WinSock.h:450: error: `SOCKET socket(int, int, int)' used prior to declaration
    :: === Build finished: 5 errors, 0 warnings ===
    

    was muss ich hier anders machen??

    achso includes etc passiern in einem header:

    #include "Server.h"
    #include "Client.h"
    #include <sys/types.h>
    #include <WinSock.h>
    #include <windows.h>
    #include <stdio.h>
    #include <cstdio>
    #include <iostream>
    #include <winsock.h>
    void initWinsock();
    
    int initWinSock(){
        WSADATA wsa;
        if (WSAStartup(MAKEWORD(1, 1), &wsa))
        {
            printf("WSAStartup() failed, %lu\n", (unsigned long)GetLastError());
            return EXIT_FAILURE;
        }
        return 0;
    }
    


  • Und der Header der die Includes beinhaltet wird auch in dem Codestück includet?



  • nein... ok danke ich dachte wenn sie im einen includet sind, sind sie auch in dem verfügbar was dort includet wird... is wohl nich so...


Anmelden zum Antworten