dll mit netzwerk funktion
-
hi...
ich moechte eine dll schreiben die auf einen simplen telnet server zugreifen soll ... ich hab nun das problem das die normalen netzwerkkomponenten irgendwie nicht laufen wenn ich eine dll baue ...thx
-
"Funktioniert nicht" oder "läuft irgendwie nicht" sind keine ausreichenden Fehler- bzw. Problembeschreibungen.
-
Jansen schrieb:
"Funktioniert nicht" oder "läuft irgendwie nicht" sind keine ausreichenden Fehler- bzw. Problembeschreibungen.
Hast Du diesen Satz als Vorlage gespeichrt, oder mußt Du ihn jedesmal neu tippen?

-
was soll er denn sonst schreiben? jedes mal 10 minunten überlegen, wie er einen neuen satz formulieren könnte?

-
Kann ich inzwischen schon blind tippen

Vorlagen habe ich allerdings auch ...Aber lasst uns bitte beim Thema bleiben. Ich bin sicher, dass mutzel das noch besser hinbekommt..
-
sorry tut mir leid ... ich hatte ein wenig stress beim ersten post ..
hab in der zwichenzeit noch ein wenig rumgebastelt und haenge nun bei der zuweisung der einzelnen events (z.b. onconnect) ..
void __fastcall OnConnect(System::TObject* Sender, TCustomWinSocket* Socket){} int main(int argc, char* argv[]) { TClientSocket *MySock; MySock = new TClientSocket(NULL); MySock->Host = "google.de"; MySock->Port = 80; MySock->Active = true; MySock->OnConnect = OnConnect; return 0; }danach bekomm ich diesen fehler
[C++ Fehler] Unit1.cpp(25): E2034 Konvertierung von 'void (_fastcall *)(TObject *,TCustomWinSocket *)' nach 'void (_fastcall * (_closure )(TObject *,TCustomWinSocket *))(TObject *,TCustomWinSocket *)' nicht möglichdas eigendliche problem ist das ich keine ahnung hab was dieses _closure bedeutet und wie man es einsetzt
-
mutzel schrieb:
das eigendliche problem ist das ich keine ahnung hab was dieses _closure bedeutet und wie man es einsetzt
Warum liest du dann nicht in der Hilfe vom BCB nach? Und zu deinem Problem mit der Zuweisung in der FAQ steht ein Beitrag dazu, wenn ich mich nicht irre

-
ja .. hab mir das in der faq angeguckt nur funktioniert bei mir irgendwie nicht .. und die bcb hilfe is auch nich gerade aufklaerend gewesen
-
Du solltest das Event zuweisen BEVOR du den Socket aktivierst.
Für das aktivieren würd ich im übrigen dann auch die Methode Open() nutzen und nicht Active nehmen. Active wird über die Methode Open() dann später auf true gesetzt
-
PuppetMaster2k schrieb:
Du solltest das Event zuweisen BEVOR du den Socket aktivierst.
Für das aktivieren würd ich im übrigen dann auch die Methode Open() nutzen und nicht Active nehmen. Active wird über die Methode Open() dann später auf true gesetzt
momentan is das eigendlich relativ egal .. da der code ja nicht mal compiliert wird
-
mutzel schrieb:
void __fastcall OnConnect(System::TObject* Sender, TCustomWinSocket* Socket){} [b]int main(int argc, char* argv[])[/b]{ TClientSocket *MySock; MySock = new TClientSocket(NULL); MySock->Host = "google.de"; MySock->Port = 80; MySock->Active = true; MySock->OnConnect = OnConnect; return 0; }Was willste mit dem
[cpp]
int main(int argc, char argv[])*{
[/cpp]
bei OnConnect anfangen?
-
VergissEs schrieb:
Was willste mit dem
[cpp]
int main(int argc, char argv[])*{
[/cpp]
bei OnConnect anfangen?Das ist die Hauptfunktion eines Konsolenprogramms, das darüber ist die Deklaration der Funktion aus der Header-Datei (hoffe ich).
Bei mir funktioniert folgendes:
Header:private: // Anwender-Deklarationen TClientSocket* pMySocket; void __fastcall MySocketConnect(TObject *Sender, TCustomWinSocket *Socket);CPP:
pMySocket = new TClientSocket(NULL); pMySocket->OnConnect = MySocketConnect;Vielleicht liegt's an dem Namen (OnConnect) und auf jeden Fall muß die Funktion zugewiesen werden, bevor der Socket verwendet wird. Aber das hatte PuMa2k ja schon erwähnt.
-
hm .. ich weiss jetzt warum der fehler bei mir kommt und es in der faq und bei Joe_M. ohne fehler geht
die fehlermeldung kommt nur wenn meine onconnect funktion nicht teil vom TForm1 ist .. kann man das irgendwie umgehen? .. gibt es eine moeglichkeit auch funktionen als events zu nehmen die nicht teil von TForm1 sind
-
gibt es denn keine moeglichkeit die komponente auch ohne ein Form benutzen zu koennen?
-
mutzel schrieb:
die fehlermeldung kommt nur wenn meine onconnect funktion nicht teil vom TForm1 ist
Fast. primär muss es eine Klassenmethode sein. Das kann eine beliebige Klasse sein, soviel ich weiss.
Das problem allerdings scheint mir eher bei dem ClientSocket zu liegen. Wenn sich das seit meinen letzten Erfahrungen und Versuchen mit dem ClientSocket nicht geändert hat, kann die Kompo nicht ohne ein Parentfenster existieren, bzw. funktionieren. Das heisst also du wirst nicht umhin kommen dir nen eignen WinSock warpper zu schreiben oder einen zu suchen der Fensterfrei auskommt...
-junix
-
junix:
Das kann ich mir nicht recht vorstellen. Schlimmstenfalls nimmt man ein DataModule dazu und packt da die Komponenten zur Entwurfszeit drauf.