29. december 2003 - 17:56
Der er
32 kommentarer og 1 løsning
connect socket
jeg har følgende kode: int port = 12345; char host[32] = "madman"; WORD sockversion; WSADATA wsadata; sockversion = MAKEWORD(1,1); WSAStartup(sockversion, &wsadata); LPHOSTENT hosten; hosten = gethostbyname(host); SOCKET thesocket; thesocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(thesocket == INVALID_SOCKET) { WSACleanup(); return; } SOCKADDR_IN server; server.sin_family = AF_INET; server.sin_addr = *((LPIN_ADDR)*hosten->h_addr_list); server.sin_port = htons(port); int test; test = connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr)); if(test == INVALID_SOCKET) { WSACleanup(); return; } } så kommer den med call of nonfunction fejl når jeg compiler.... bruger borland c++builder3
Annonceindlæg fra Conscia
29. december 2003 - 18:07
#1
Fortæller kompileren hvilken linie? BCC 5.5 har ingen problemer.
29. december 2003 - 18:07
#2
grrr, det skulle ikke være et svar, vær venlig at afvise det!
29. december 2003 - 18:08
#3
test = connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr)); den linje
29. december 2003 - 18:11
#4
Mit gæt er at der mangler en include af en .h fil !
29. december 2003 - 18:19
#5
Eller at der er en variabel der hedder connect et sted? Hvilke .h filer har du inkluderet?
29. december 2003 - 18:37
#6
#include <vcl.h> #include <winsock.h> her jeg inkluderet
29. december 2003 - 18:40
#7
Hm. Gad vide om der er noget i vcl.h som konflikter med resten. Kan du prøve at fjerne den ?
29. december 2003 - 18:42
#8
jeg har lavet en "vindusprogramering" så den var der som default
29. december 2003 - 18:48
#9
det virker heller ik så kommer den med nogle fejl i winsock.h
29. december 2003 - 18:50
#10
Prøv og erstat begge med: #include <windows.h>
29. december 2003 - 18:51
#11
det samme... kommer den bare med... skal jeg virkelig til og finde en nyere c++builder
29. december 2003 - 18:54
#12
Kunne godt lyde sådan...
29. december 2003 - 21:34
#13
hmm jeg har lige hentet bcb6 og den siger det samme smider lige hele koden #include <windows.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; void __fastcall TForm1::connectClick(TObject *Sender) { int port = 12345; char host[32] = "madman"; WORD sockversion; WSADATA wsadata; sockversion = MAKEWORD(1,1); WSAStartup(sockversion, &wsadata); LPHOSTENT hosten; hosten = gethostbyname(host); SOCKET thesocket; thesocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(thesocket == INVALID_SOCKET) { WSACleanup(); return; } SOCKADDR_IN server; server.sin_family = AF_INET; server.sin_addr = *((LPIN_ADDR)*hosten->h_addr_list); server.sin_port = htons(port); int test; test = connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr)); if(test == INVALID_SOCKET) { WSACleanup(); return; } }
29. december 2003 - 21:35
#14
det har ikke noget at gøre med at jeg har en evalulation versions.
29. december 2003 - 21:40
#15
Mystisk, når jeg fjerner alt GUI halløjsa så compiler det hos mig ! #include <windows.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" void __fastcall connectClick() {
29. december 2003 - 21:54
#16
ja jeg har også haft det til og køre i console ??? jeg forstår det heller ikke helt... hvordan kan jeg ellers lave den connect ???? det må være en alternertiv måde
29. december 2003 - 21:58
#17
skal jeg ikke lave SOCKET thesocket til en global variabel hvis jeg vil have den kaldet fra andre knapper ????
29. december 2003 - 22:04
#18
Prøv at skrive ::connect(thesocket,(LPSOCKADDR)&server,sizeof(struct sockaddr));
29. december 2003 - 22:15
#19
uhh det hjalp tak for det.... hvorfor ???
29. december 2003 - 22:21
#20
hmm så kommer den bare med [Linker Fatal Error] Fatal: Unable to open file 'VCLE35.LIB'
29. december 2003 - 22:23
#21
jeg har sletter ikke filen på min computer... så det foklare nok hvorfor den ikke kan åbne den... hvad gør man så ???
29. december 2003 - 22:32
#22
::connect betyder connect uden klasse/namespace
29. december 2003 - 22:36
#23
Det kan være et C++Builder opdaterings problem. Prøv og check project settings - måske skal der linked mod en anden VCL*.LIB !
29. december 2003 - 22:36
#24
jeg prøver lige og lave den igen med en ny form og så vidre... og så bare kopere knap koden
29. december 2003 - 23:05
#25
ARGH [Linker Error] Unresolved external 'WinMain' referenced from D:\PROGRAMMER\BORLAND\CBUILDER6\LIB\C0W32.OBJ jeg kan compile den 1 når jeg har skrevet al koden ind.. så virker det også fint... så vil jeg lave vidre men så kommer den med den fejl.. så tænkte jeg det er sikkert noget jeg har fucket op... så jeg tog og lavede det forfra og compilede det... det kørte fint.. stoppede det og compilede det igen uden og gøre noget... og så kom fejlen igen... er det så meget evalutaions udgave at jeg ikke en gang kan få lov til og kompile mer end 1 gang ????
29. december 2003 - 23:07
#26
WTF så lukkede jeg programmet og startede det igen så var min kode blevet lavet om til //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } //---------------------------------------------------------------------------
29. december 2003 - 23:07
#27
nogle der kan foklare mig hvad der sker her ???
29. december 2003 - 23:29
#28
Huskede du at stille risengrød op på loftet den 24. ? :-) Mere seriøst: du har et C++Builder problem og jeg kender ikke den (jeg bruger kun 5.5 command line compileren). Men forhåbentligt er der andre som kan forklare det.
29. december 2003 - 23:31
#29
hmm jeg huskede det desværre ikke :( så det er sikkert det der er galt =)
30. december 2003 - 08:36
#30
Kopier al din code over i nogle andre filer, start et nyt project, kopier din kode ind de rigtige steder.
30. december 2003 - 11:50
#31
jeg har prøvet det ind til flere gange og den gør det samme hver gang...
30. december 2003 - 12:52
#32
ang 23:07:10, WTF, så er din kode ikke lavet om, hvis du vælger View/Project Manager, får du et billede frem hvori du kan vælge mellem de filer dit project indeholder, her kan du finde din cpp fil med kode, hvis du da har gemt ( forudsat selvfølgelig at nissen ikke har slettet den).
Kurser inden for grundlæggende programmering