[function] Winsock start function in anderer Datei
-
Hi leute,
kann ich winsock einfach in einer anderen datei initialisieren?Oder muss ich irgentwas dafür machen?
Mfg Niko
-
kannste machen, ist aber trotzdem winapi

-
ahh ok sry xD
wenn ich schon dabei bin ^^
wenn ich eine variable auserhalb einer function deklariere kann ich die doch auch in einer anderen datei benutzen oder?
also so :
#include "muuh.h" int wert1 = 0; int main(){ }
-
Ja.
Hat aber nichts mit C++ zu tun und ist schlechter Programmierstil.
-
sry noob

warum schlechter stil?
wie kann ich denn sonst meine function die meherere Variablen verändert in einer anderen datein deklarieren?
Mfg Niko
-
Hallo
Indem die Funktion alles was sie an Werten braucht als Parameter bekommt. Denn dadurch wird sie unabhängig von festen Variablen und kann auch in andern Zusammenhängen verwendet werden.
bis bald
akari
-
also einfach nur übergeben? o.O
so geht das ?
int main(){ int nummer1 = 32; int nummer2 = 2222; muuh(nummer1, nummer2); //nun sind die zahlen, a=1 , b=2 ? } int muuh(int a, int b) { a = 1; b = 2 }
-
Hallo
Naja ein bißchen must du schon noch verändern. Stichwort Call-By-Value und Call-By-Reference.
int muuh(int& a, int& b); int main(){ int nummer1 = 32; int nummer2 = 2222; muuh(nummer1, nummer2); //nun sind die zahlen, a=1 , b=2 ! } // Die Funktion übernimmt Referenzen, d.h. die Änderungen in der Funktion betreffen die Originalvariablen int muuh(int& a, int& b) { a = 1; b = 2 }bis bald
akari
-
ok danke für die antwort,
irgentwie bekomme ich aber mit den "&" ein fehler
[Linker error] undefined reference to `startws32(long, unsigned int, sockaddr_in)'meine function :
int startws32(long& rc,SOCKET& sconnect,SOCKADDR_IN& addr); int startws32(long& rc,SOCKET& sconnect,SOCKADDR_IN& addr){ using namespace std; WSADATA wsa; rc= WSAStartup(MAKEWORD(2,0),&wsa); if(!rc == 0){ MessageBox(0,"WinSock konnte nicht gestartet werden","Error",58); return 0; } sconnect=socket(AF_INET,SOCK_STREAM,0); if(sconnect==INVALID_SOCKET){ MessageBox(0,"Socket konnte nicht erstellt werden!","Error",58); return 0; } memset(&addr,0,sizeof(SOCKADDR_IN)); addr.sin_family=AF_INET; addr.sin_port=htons(7000); addr.sin_addr.s_addr=inet_addr("127.0.0.1"); }
-
Hallo
Das hat nichts mit den & zu tun, sondern ist bereits ein Linkerfehler. Der genaue Grund dafür ist aber in dem Codeauszug nicht zu sehen.
bis bald
akari
-
leider doch

wenn ich die "&" wegmache geht es ohne probleme >_<