Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.12.2007, 13:52

Problem beim erstellen eines Projektes! Thema: Sockel

sry wegen dem Doppelpost aber mein alter post ist in Anti-Spam-Programm zu finden wo ihn keiner mehr finden wird weil er nix mit dem Thema zu tun hat!
Ich verusche gerade sockel zu erlernen und ich scheitere schon beim 1. Versuch das Projekt zu erstellen!
Könnte mir jemand helfen?
also:
der Quelltext (sry wegen der länge aber ich verstehe ihn nicht wirklich wie soll ich ihn da kürzen ):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <windows.h> 

#include <winsock2.h> 

#include <stdio.h>//Prototypen 


int startWinsock(void);int main() 

{ 

  long rc; 

  rc=startWinsock(); 

  if(rc!=0) 

  { 

    printf("Fehler: startWinsock, fehler code: %d\n",rc); 

    return 1; 

  } 

  else 

  { 

    printf("Winsock gestartet!\n"); 

  } 

  return 0; 

}int startWinsock(void) 

{ 

  WSADATA wsa; 

  return WSAStartup(MAKEWORD(2,0),&wsa); 

} 
 



Fehler:

Quellcode

1
2
3
  [Linker error] undefined reference to `WSAStartup@8' 
  ld returned 1 exit status 
 C:\Projekte\C++Projekte\Sockel\Makefile.win [Build Error]  [Projekt1.exe] Error 1  



What soll ich machen???
ich hab keine Ahnung!
Auf der Tutorial internetseite steht man soll die Lib. Datei ws2_32.lib noch einbinden aber ich weiß nicht wo ich die finden soll!
...

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

2

07.12.2007, 14:19

was findest du nicht. die lib oder die funktion?
zum einbinden gibt es mehrere möglichkeiten. 1 davon:

C-/C++-Quelltext

1
#pragma (lib, "ws2_32.lib");

ich hoffe der befehl war so. mache das sonst immer über den linker im projekt ;)

Sheddex

unregistriert

3

07.12.2007, 14:55

Es gehört noch "comment" dazu, das Semikolon dafür weg.

C-/C++-Quelltext

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

4

07.12.2007, 15:22

also sieht der anfang dann so aus?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
#pragma comment (lib, "ws2_32.lib") 

#include <windows.h>

#include <stdio.h>//Prototypen


int startWinsock(void);int main()

{
}


Wenn ja dann muss ich leider feststellen das immer noch die Fehlermeldung kommt!
(siehe vorher)
...

5

07.12.2007, 17:58

Wasn verkorksten ^^

Zitat von »"[url=http://msdn2.microsoft.com/en-us/library/ms742213.aspx«

MSDN Library[/url]"]Header: Declared in Winsock2.h.
Library: Use Ws2_32.lib.
DLL: Requires Ws2_32.dll.


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <winsock2.h>
#include <iostream>

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

bool init_sockets();
void shut_sockets();

int main()
{
    if (init_sockets() == false) 
    { 
        return (std::cerr << "FEHLER: WinSocket konnte nicht initialisiert werden!" << std::endl), 1; 
    }
    shut_sockets();
}


bool init_sockets()
{
#if _WIN32
    ::WSADATA wsa;
    return ::WSAStartup(MAKEWORD(2, 0), &wsa) == 0;
#endif // _WIN32  

    return true;
}

void shut_sockets()
{
#if _WIN32
    ::WSACleanup();
#endif // _WIN32

}
so sollte das gehen :)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

6

07.12.2007, 18:05

Quellcode

1
2
  [Linker error] undefined reference to `WSACleanup@0' 
  [Linker error] undefined reference to `WSAStartup@8'

Sry jetzt is sogar noch ein Fehler dazugekommen! :D
...

$nooc

Alter Hase

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

07.12.2007, 18:08

schau mal nach ob du die lib am rechner hast..
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

8

07.12.2007, 20:08

falls du sie nicht hast, installier dir das windows sdk. alternativ kannste dir die laden. habe sie mal geuppt:
http://home.arcor.de/BlackSnake-Studios/DLLS/WS2_32.rar
;)

9

08.12.2007, 19:15

ich lad sie mir!
Die Windows (Vista) Suche hat keinen Erfolg gebracht
...

10

08.12.2007, 19:56

ich checks nicht bin ich dumm oder so?
dieses mal mit Visual C++ 2005

Bei projekt neu erstellen:

Quellcode

1
2
3
4
1>------ Neues Erstellen gestartet: Projekt: 1.Projekt, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "1.Projekt" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>1.Projekt - aktuell.
========== Alles neu erstellen: 1 erfolgreich, Fehler bei 0, 0 übersprungen ==========


Bei projekt erstellen:


Quellcode

1
========== Erstellen: 0 erfolgreich, Fehler bei 0, 1 aktuell, 0 übersprungen ==========


Bin ich zu dumm zum programmieren?!?!
...

Werbeanzeige