Forum: PC-Programmierung Verweis zwischen 2 Form-Objekten


von H. D. (c3po)


Lesenswert?

Hallo

Visual Studio 2005 Express:
ich bräuchte jeweils eine Möglichkeit auf das jeweilige andere Form 
zugreifen zu können.

sprich:
Klasse A kann auf B zugreifen

und Klasse B kann auf A zugreifen

Danke

von Peter II (Gast)


Lesenswert?

und wo ist jetzt das Problem? Jedes Objekt kann auf jedes andere Objekt 
zugreifen wenn es eine Variable/Referenz vom den jeweilig anderen hat.

von H. D. (c3po)


Lesenswert?

ok mein problem scheint zu sein, dass ich nicht in beiden header files 
das jeweilige andere Header file inkludieren kann
und somit kennt die Klasse nicht die struktur der anderen Klasse

von Peter II (Gast)


Lesenswert?

H. D. schrieb:
> dass ich nciht in beiden header files
> das jeweilige andere Header file inkludieren kann

naja dann ist das wirklich dein Problem, denn der Compiler hätte damit 
kein Problem

von H. D. (c3po)


Lesenswert?

mit sicherheit ist es mein problem
aber es ist leider auch das problem des kompilers, da er beim 
inkludieren des jeweiligen anderen Header files meckert

von Peter II (Gast)


Lesenswert?

H. D. schrieb:
> da er beim inkludieren des jeweiligen anderen Header files meckert
Und mit welcher Fehlermeldung?

schicke am besten gleich die header-files mit, sonst muss du dein 
Problem wirklich noch selber lösen

von H. D. (c3po)


Angehängte Dateien:

Lesenswert?

So die fehlermeldung ist:
1>c:\documents and settings\uidt2537\my documents\visual studio 
2008\projects\inkl_test\inkl_test\Form2.h(73) : error C2143: 
Syntaxfehler: Es fehlt ';' vor '^'

anbei ein beispielprojekt allerdings für version 2008

von Peter II (Gast)


Lesenswert?

das ist ja das hässliche c++.net oder wie immer das aus heist.

Sorry da kann ich kaum weiter helfen (ausser dir davon abzuraten etweder 
C# oder C++)

Kannst nur mal versuchen den Namespace davor zu schreiben.

von H. D. (c3po)


Lesenswert?

jo isses ....

o.W.

aber selbst da muss es ja irgendwie möglich sein
ich hab schon bissl geforscht evtl. brauche ich da den % operator aber 
keine Ahnung...

und ja mir wäre auch lieber ein gescheites C++ zu verwenden anstatt dem 
managed Zeugs...

nun denn

hab schon einiges probiert, aber geklappt hat es nicht
interessanterweise ist es in diesem beispiel hier etwas anders, in dem 
eigentl. Projekt ist die angegebene Fehlermeldung die erste die kommt 
...

vllt findet sich hier ja doch noch einer der weis wie man das generell 
löst sonst muss ich mir was anderes einfallen lassen ... z.B. ala TCP-IP 
connection zwischen 2 Forms aufm gleichen rechner ...

von Peter II (Gast)


Lesenswert?

mach doch ein Zentrales object (keine Form) was du zum 
datenaustausch/datenhaltung verwenden kannst.

von H. D. (c3po)


Lesenswert?

naja das mit dem TCP-IP würde sich bei mir schon son bissl anbieten
in der einen richtung hab ich ja eh schon einen quasi-pointer
nur die gegenrichtung fehlt mir halt noch

und wie gesagt es ist eh ein reines TCP-IP projekt nur wollte ich zw. 
forms kein TCP machen

aber über deine idee hab ich auch schon nachgedacht
nur versuche mal ein globales managed Objekt anzulegen, das keinem Form 
gehört ... geht leider nicht bzw. ich weis nicht wie, da meckert der 
compiler auch schon

Gute alte reine C++ Zeit

von Peter II (Gast)


Lesenswert?

H. D. schrieb:
> geht leider nicht bzw. ich weis nicht wie, da meckert der
> compiler auch schon

ich glaueb du solltet erst einmal die Sprache besser kennen lernen, klar 
kann man einfach so klassen und objecte ohne Forms anlegen. Man sollte 
halt nicht immer alles mit assistenten machen sondern beim erstmal alles 
von Hand machen, dann weiss man wie was zusammehängt.

Aleine für Idee zwischen 2 Forms eine TCP verbindung aufzubauen sollte 
man bestraft werden.

von H. D. (c3po)


Lesenswert?

naja warum nicht ich habe eh shon eine eigene TCP-Klasse eingebunden, 
die das komplette Handling inkl. eigener Threads beinhaltet

ich habe ja nur drüber philosophiert, ob man es machen könnte und bevor 
ich stunden damit verbringe herauszufinden wie es wirklich geht aber 
nichts finde implementiere ich es doch lieber so wie es auf jedenfall 
funktionieren wird...

ich sag mal so:
wer ohnehin auf die Idee kommt jedem Form einen eigenen Thread 
zuzuordnen und damit meine ich nicht auf einer heutigen Maschine sondern 
auf einer Pentium Maschine mit (ich glaube) 300MHZ der lässt sich schon 
mal paar interessantere Alternativen einfallen ...

und die jetzige Applikation ist ebenfalls mit reichlich Threads gespickt

aber das damals war shon viel heftiger ...

von Peter II (Gast)


Lesenswert?

H. D. schrieb:
> naja warum nicht

weil man mit resourcen schonen umgehen soll und hier es ein viel zu 
großer overhead. Kein wunder warum viele Programm immer langsamer werden 
wenn etwickler schon auf solche Ideen kommen.

Spannend wird auch sein, wenn eine Firewall plötzlich auf die Idee kommt 
deine Verbindung zu kappen. Oder was ist wenn jemand überhaupt kein 
netwerk hat? Oder jemand konfiguriert das netwerk um und die Bekommst 
ein Reset.

von H. D. (c3po)


Lesenswert?

Lass es mich so sagen aufm PC sehe ich das nicht als so kritisch an 
zumind. noch nicht

du hast schon recht aber wer tag täglich mit embedded systemen zutun hat 
und ständig auf laufzeit und Speicher achten darf nimmt es auf einem PC 
nicht immer so genau

und wenn das System auf dem das ganze laufen soll ausgelastet sein 
sollte wird es so erweitert dass sich mehrere Rechner die arbeit teilen 
können
und nur das nötigste zwischen den Servern wird ausgetaucht werden ...

stimmt schon ich habe noch nicht alle eventualitäten vorgesehen ...

Dazu mal ne frage kann man auf einem Rechner eine TCP-Verbindung zu 
localhost unterbinden ? Geht sicherlich, ich meine auch ohne absichtlich 
das laden der entsprechenden Treiber zu verhindern ...

von Peter II (Gast)


Lesenswert?

H. D. schrieb:
> Dazu mal ne frage kann man auf einem Rechner eine TCP-Verbindung zu
> localhost unterbinden ? Geht sicherlich, ich meine auch ohne absichtlich
> das laden der entsprechenden Treiber zu verhindern ...

unter linux geht es, bei windows habe ich es noch nicht versucht

von H. D. (c3po)


Lesenswert?

Ist denn keiner hier, der die geposteten Sourcen zum laufen bringen kann 
?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.