Zum Inhalt springen

Crush

Mitglieder
  • Gesamte Inhalte

    2048
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Crush

  1. Also ich glaube beim EZBoard gibt´s tausende von diesen Foren - besser sind vielleicht noch die chats auf diesen diversen "Z"-Seiten. Ganz Top sind übrigens die Spanier - bei denen läuft irgendwie ALLES unter Abandonware (auch wenn´s erst ´ne Woche alt ist). Auf der Suche nach ROM-Sites kommt man auch ruckzuck auf ein paar ganz unbekannte Exoten - aber mit feinstem "Stoff"! Diese "Z"-Lists taugen meistens nicht allzuviel - es sei denn Du steht auf Werbung, Sexsites, Würmer und Viren. Also bei Abandon-Rings findet man ganz schnell zu den "Z"-Foren (weil die halt meistens auch schon "Tendenzen" zum "Z" haben). Viel fündiger wirst Du aber bestimmt bei bestimmten NEWS-Foren (viel FunZ beim SofZ suchen!) <FONT COLOR="#a62a2a" SIZE="1">[ 29. September 2001 00:55: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  2. Crush

    Audio MPEG Layer 3

    Ich hab mich mal ein wenig umgeschaut und das hier alles gefunden: (ohne DLL, API, OCX - reiner Source) http://www.planet-source-code.com/xq/ASP/txtCodeId.372/lngWId.3/qx/vb/scripts/ShowCode.htm Bei MP32Wav soll irgenwo auch der Source mit dabei sein: http://www.hitsquad.com/smm/programs/MP32WAV/ http://www.mp3machine.com/software/MP32WAV/ http://www.neverexpires.com/software/details.asp?Index=563 Die XAudio-DLL scheint auch MP3 zu unterstützen: http://mp3.musichall.cz/programming-text.html Hier nochmal ein Compressor (wolltest Du glaub auch mal): http://www.1javastreet.com/xq/ASP/txtCodeId.402/lngWId.3/qx/vb/scripts/ShowCode.htm und der dazugehörige Decoder: http://www.1javastreet.com/xq/ASP/txtCodeId.372/lngWId.3/qx/vb/scripts/ShowCode.htm hier noch was ganz anderes: Einen ABSOLUT VERLUSTLOSEN Audio-Encoder KEIN MP3 (Jedes einzelne Bit des Orginals bleibt erhalten): http://www-ft.ee.tu-berlin.de/~liebchen/lpac.html aber natürlich mit trauriger Kompressionsrate! Hoffentlich war da was dabei!
  3. Crush

    Structuren in C

    Also das hier wurde ja schon 1000 mal beschrieben: struct test{ int oben; int unten;} normaltest; Hier wird gleich das Objekt normaltest erzeugt aus der Struktur Struct test, ohne diesen Anhang müßte man halt um eine Objekt zu erzeugen schreiben: struct test neuestestobjekt; deren Eigenschaften man über den .-Operator ansprechen kann: normaltest.oben=1; normaltest.unten=2; neuestestobjekt.oben=3; neuestestobjekt.unten=3; Vielleicht noch eine kleine Ergänzung weil man auch gerne Typedef Structs macht, da man sich hier dann das struct sparen kann, was aber doch den Sourcecode ein wenig undurchsichtiger macht, wenn man nicht weiß, das sich hinter diesem "Typ" eine Struktur verbirgt. typedef struct test2 { int oben; int unten;} typedeftest; Es wird eine "Typ" vergleichbar mit int, long oder double erzeugt, welcher allerdings ein Objekt der Struktur test2 erzeugt. Allerdings kann man mit typedeftest erst mal gar nichts anfangen, da dies hier KEIN OBJEKT ist (halt nur ein Typ). Also erzeugen wir ein Objekt mit: struct test2 neuestest2objekt; oder kürzer geschrieben (und deshalb der Typedef): typedeftest neuestypedeftestobjekt; mehrere mit , getrennt: typedeftest ax1, ax2, ax3; // 3 Typedefobjekte erzeugt Die MSDN erreichst Du wenn Du den Ausdruck (z.B. Struct) mit der Maus markierst und dann F1 drückst oder im Internet unter http://search.microsoft.com/us/dev/default.asp <FONT COLOR="#a62a2a" SIZE="1">[ 28. September 2001 23:38: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  4. Seltsam seltsam. Selbst wenn ich alle 107 aktiven Fenster vom Internet-Explorer einen LButtondown & up schicke, werden zwar alle möglichen aktionen ausgelöst (also werden die Klicks korrekt verschickt), ABER AUSGERECHNET IM SURF-WINDOW GAR NICHTS! Kann das vielleicht daran liegen, daß sich die Daten in einer Document-Struktur befinden? Leider hab ich noch nicht rausgefunden, wie ich an das Document-handle rankommen könnte. Vielleicht will so MS verhindern, daß Würmer und Viren den Explorer extern steuern?!?! Trotzdem Danke! Allerdings hat das auch nichts anderes gemacht wie das was ich so getan habe (nur halt ohne Pixelpositionen).
  5. Hi! Ich wollte nur sagen, daß ich mir Hype gekauft habe. Ich weiß leider noch nicht wie ich über die 640*400 Pixel-Grafik rauskomme, aber eines ist absolut wahr: Die Ähnlichkeiten zu Zelda64 sind so riesig, daß es einen Heidenspaß macht - nur: Mit Sprachausgabe, mehr Cutscenes und ein paar neuen Ideen - vieles was schon in Zelda gut war wurde hier einfach gnadenlos übernommen. Und so flüssig wie die Grafik von Hype ist Zelda NIE gewesen! KLASSE - war echt kein Fehler sich das Teil zuzulegen!!!
  6. Also ich erkläre mal kurz, worum es geht. In WEB.de kann man kostenlos telefonieren. Leider muß man alle 2 Minuten auf die Werbung klicken - und beim Quasseln bin ich so daneben, daß ich das gelegentlich verpasse. Jetzt will ich mir ein kleines Progrämmchen machen, welches es mir erlaubt trotzdem weiter durch die Gegend zu surfen und alle notwendigen Klicks zeitgenau zu setzen, damit das Telefonat nicht abgebrochen wird. Klappt eigentlich alles wunderbar, nur eines nicht: Ich schaffe es nicht den Button, auf dem der Curser liegt tatsächlich zu aktivieren?!!?! (schnaub!) Testweise wird im Internet-Explorer (von T-Online gestartet) die Seite Google.de angezeigt. Dann wird das Programm gestartet. Es sucht sich das Fenster anhand des Fenstertitels und bringt es testweise mal nach vorne, holt sich die Curserpositionen, Dialog-IDs, usw. und versucht vergeblich einen "echten" Linksklick auszulösen. Hier das Programm und alle kläglichen Testversuche: CWnd *pInternetWindow; pInternetWindow = FindWindow(0,("Google - Microsoft Internet Explorer von T-Online")); if(pInternetWindow == NULL) {//Fehlerbehandlung}; else { CPoint mypoint; mypoint=pInternetWindow->GetCaretPos(); // Position auslesen WPARAM Wparam; LPARAM Lparam; Wparam=mypoint.x; // Vorbereiten zum Klick Lparam=mypoint.y; pInternetWindow->BringWindowToTop(); // Fenster nach Vorne (nur Test) pInternetWindow->SendMessage(WM_LBUTTONDBLCLK); pInternetWindow->SendMessage(WM_LBUTTONDBLCLK,Wparam,Lparam); pInternetWindow->SendNotifyMessage(WM_LBUTTONDBLCLK,Wparam,Lparam); int unkn=pInternetWindow->GetDlgCtrlID(); // aktuelles ControlID pInternetWindow->SendDlgItemMessage(unkn,WM_LBUTTONDOWN); pInternetWindow->PostMessage(WM_LBUTTONUP); } Funktioniert alles wunderbar, nur halt der Klick wird nicht ausgeführt. Ich habe schon alles mögliche ausprobiert und verzweifel langsam. Vielleicht kennt jemand die Lösung des Problems? <FONT COLOR="#a62a2a" SIZE="1">[ 25. September 2001 19:32: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  7. Irgendwo habe ich das hier gefunden: DWORD dType = REG_SZ; if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Programm\\Thema", 0, KEY_READ, &hKey)==ERROR_SUCCESS ) { if( !RegQueryValueEx(hKey,"StringValue", 0, &dType, (LPBYTE)String, &lStringLen) ) { // verarbeite den Wert in String } RegCloseKey(hKey); Oben muß der Pfad rein, StringValue ist der Wert und in String wird der Inhalt gelesen. Das war jedenfalls die kürzeste Lösung dafür. Funktioniert, nur die Subkeys machen mir irgendwie Probleme. Experimentier mal damit rum. <FONT COLOR="#a62a2a" SIZE="1">[ 25. September 2001 19:35: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  8. Crush

    fopen

    Zuviel geklickt! <FONT COLOR="#a62a2a" SIZE="1">[ 24. September 2001 22:07: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  9. Crush

    fopen

    Zuviel geklickt <FONT COLOR="#a62a2a" SIZE="1">[ 24. September 2001 22:06: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  10. Crush

    fopen

    Also wegen dem "Scan"-Algorhythmus, da habe ich ein paar verschiedene kleine Sources zu. Such Dir was möglichst Undurchschaubares raus und versuche damit alle rückwärts aus dem Sessel zu hauen, weil ein Normaler wohl kaum auf solch irre Lösungsmöglichkeiten kommen würde! Am besten Implementiere alle Suchalgorhythmen und lasse dem Anwender die Auswahl dazu! Source1: ************************************************** /* Brute-Force-Algorithmus */ /* * In Puffer finden wir den Text, in Pattern das Suchmuster. * Die Länge des Texts entnehmen wir der Variablen size. */ long Brute_Search(char *Puffer,char *Pattern, long size) { long i,j,M=strlen(Pattern),N=size; for( i=0,j=0; j<M && i<N; i++, j++ ) while( Puffer != Pattern[j] && i<N ) { i-=(j-1); j=0; } if( j==M ) { STFound++; return i-M; } else { return i; } } ************************************************** Source2+Source3 (gehören zusammen) ************************************************** /* Diese Routine richtet das erforderliche Sprung-Array * fürs Knuth-Morris-Pratt-Verfahren ein */ long NextArray[50]; /* Falls nötig, größer dimensionieren */ void InitNextArray(char *pattern) { long i,j, M=strlen(pattern); NextArray[0]=-1; for( i=0, j=-1; i<M; i++,j++,NextArray= (pattern==pattern[j])? NextArray[j]:j ) while( (j>=0) && (pattern != pattern[j] ) ) j=NextArray[j]; } ************************************************** Source3 ************************************************** /* Der Suchalgorithmus nach Knuth-Morris-Pratt * eignet sich hervorragend für die Suche in externen * Dateien */ extern long NextArray[]; long KMP_Search(char *Puffer,char *Pattern, long size) { long i,j,M=strlen(Pattern),N=size; for( i=0,j=0; j<M && i<N; i++, j++ ) while( (j>=0) && (Puffer != Pattern[j]) && i<N ) j=NextArray[j]; if( j==M ) { return i-M; } else { return i; } } ************************************************** Source4+Source5 gehören zusammen ************************************************** /* Das für die Vorgehensweise von Boyer-Moore benötigte * Skip-Array läßt sich so kreieren */ long Skip[256]; void InitSkip(unsigned char *pattern) { long i,j, M=strlen(pattern); for( i=0; i<256; Skip[i++]=M ); for( i=0,j=M-1; j>=0; j--,i++ ) if( Skip[pattern[j]] == M ) Skip[pattern[j]] = i ; } ************************************************** Source5 ************************************************** /* So einfach ist der extrem leistungsfähige * Boyer-Moore-Algorithmus zu implementieren */ extern long Skip[]; long BM_Search(unsigned char *Puffer, unsigned char *Pattern, long size) { long i,j,M=strlen(Pattern),N=size,t; for( i=M-1,j=M-1; j>=0; i--, j-- ) { while( Puffer != Pattern[j] ) { t=Skip[Puffer]; i+=(M-j>t)?M-j:t; if( i>=N ) return N; j=M-1; } M=strlen(Pattern); } return i; } ************************************************** Source6 frag nicht was d & q bedeuten sollen (häh?) ************************************************** /* Das Robin-Karp-Verfahren ermöglicht lineare Suchzeiten, * unabhängig von der Eingabe */ #define q 33554393 #define d 32 long RK_Search(unsigned char *Puffer, unsigned char *Pattern, long size) { long i,j,M=strlen(Pattern),N=size,dM=1,h1=0,h2=0; for( i=1; i<M ; i++ ) dM=(d*dM)%q; for( i=0; i<M ;i++ ) { h1 = (h1 << 5 + (long)Pattern) % q; h2 = (h2 << 5 + (long)Puffer) % q; } for( i=0; h1 != h2 ;i++ ) { h2 = (h2 + d*q - (long)Puffer * dM) % q; h2 = (h2<<5 + (long)Puffer[i+M]) % q; if( i > N-M ) return N; } return i; } ************************************************** Viel Spaß!
  11. Also das ist eine der kürzesten Zusammenfassungen, die ich kenne: http://www.oszhdl.be.schule.de/gymnasium/faecher/informatik/ooa-ood/klasdia_uml.htm Das ist auch nicht schlecht: http://dbs.uni-leipzig.de/de/skripte/DBS2/inhalt2.html Was ganz perverses wäre das hier (aber nur zur Ergänzung, was noch auf uns zukommt) http://www.informatik.uni-bremen.de/grp/vroom/3D-Pe.html (das Bild links unten ist übrigens ein Beispiel wie man dynamische Prozesse von Klassendiagrammen darstellen kann (halt mit zeitlichem Ablauf, Funktionsaufrufen und Richtung der Datenströme). Oben links ein Zustandsdiagramm (was aber eigentlich niemanden interessiert). Das ist schon etwas ausladender, allerdings alles Wichtige ist beschrieben: http://www.isw.uni-stuttgart.de/projekte/mowima/info_d.htm Hier werden sogar ein paar mir absolut unbekannte Dinge wie das "Baukastendiagramm" dargestellt. Konzentiere Dich jedoch nur auf die UML-Erklärungen! Vielleicht noch wegen der Arbeit: Mache darauf aufmerksam, daß ein Klassendiagramm alleine nur die Beziehungen der Klassen und Objekte zueinander darstellt. Nicht jedoch die Zustände, Reihenfolgen von Funktionsaufrufen und Abläufen, also alle dynamischen Vorgänge sind grundsätzlich als Ergänzung notwendig um tatsächlich ein brauchbares Programm zu visualisieren. <FONT COLOR="#a62a2a" SIZE="1">[ 23. September 2001 20:27: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  12. Ich hab´s probiert. Das mag bei normalen Arrays stimmen, aber bei den STL-Containern funktioniert das Austauschen der Operanden nicht mehr. Ich frage mich, warum der Stroutrup schrieb, daß der []-Operator keine Typprüfung vornimmt. Er hat auch empfohlen, den Operator mit at() abzusichern. Hat M$ vielleicht aufgrund dieser Aussage das ganze verändert? Wenn es noch mehr solche Änderungen gibt, dann enthalten einige Abschnitte aus den gängigen Büchern jetzt nicht mehr korrekte Aussagen - und das könnte zu ziemlichen Anwendungsproblemen führen wie z.B.: ("warum klappt denn das schon wieder nicht - hier steht´s doch ganz genauso!!!").
  13. x=(*vektor)[position]; Aaaahaaaa! Das heißt, daß Operatoren noch vor der Dereferenzierung abgearbeitet werden, gell! Das erklärt natürlich alles! Danke!
  14. Zak McKracken 2 - echter Kult stirbt nie!
  15. Wenn man einen Zeiger auf den Vektor hat, dann klappt das mit den x=vektor[position]; nicht mehr. Dann muß man über: x=Zeiger_auf_vektor->at(position); auf die Elemente zugreifen. (Nur zur Ergänzung des Threads) <FONT COLOR="#a62a2a" SIZE="1">[ 23. September 2001 01:18: Beitrag 4 mal editiert, zuletzt von Crush ]</font>
  16. @Maddin Erstmal habe ich Überladen und Überschreiben verwechselt. Aber an genau sowas habe ich gedacht. Es Stimmt, Du hast Recht. Ein Überladen vom Rückgabetyp ist aus technischen Gründen nicht möglich, weil sonst das Überladen der Operatoren oder Funktionsaufrufe zu schweren Fehlern führen könnte. Aber seltsam, als ich mit den OCI-Klassen von Oracle rumgemacht habe, habe ich einen ähnlichen Effekt gehabt. Das muß ich mir wohl nochmal anschauen - vielleicht habe ich mich auch einfach getäuscht. Dort konnte ich jedenfalls eine SQL-Anfrage stellen und je nachdem, welchen Typ ich als Rückgabetyp erwartete wurde entsprechend die Konvertierung auch vom Datensatztyp vorgenommen (soweit möglich) die Eingangsdaten waren jedoch immer vom gleichen Typ. Also irgendwie muß das doch machbar sein. Das ging dort wohl nicht durch überladene Funktionen, sondern halt auf eine andere Art. Dort haben die das aber mit eigens definierten Dynasets gemacht und nicht die Werte in Funktionen direkt übergeben, wahrscheinlich liegt da der Hund begraben. <FONT COLOR="#a62a2a" SIZE="1">[ 20. September 2001 20:47: Beitrag 2 mal editiert, zuletzt von Crush ]</font>
  17. Crush

    Rückgabewert vector?

    Ach soooo ist das! Und ich dachte schon, daß der []-Operator als protected deklariert ist und deshalb keine Referenzzugriffe erlaubt! Man soll wohl lieber mit dem Iterator oder at() arbeiten, dann gibt´s auch keinen Ärger.
  18. Ich gebe ja zu, daß mir auch mal ab und zu ein blödes Wort rausgerutscht ist (nach ein paar Bierchen hängt die Zunge halt lockerer). Aber Bako hat Recht! Ich meine auch in einem Fachinformatiker-Forum sollte mehr über Informatik und vom Fach gesprochen werden als über rassistische oder frauenfeindliche Dinge. Ich versuche ja in letzter Zeit mehr ein paar sinnvolle Beiträge dazu zu leisten und ich bin froh, daß es auch noch ein paar andere gibt, die "echte" Fragen haben die auch ins Thema passen. Wenn jemand Off-Topik spricht, dann kann das halt auch daran liegen, daß man eigentlich manchmal nicht mehr weiß, ob nicht die Vorgänger schon zur Genüge die Frage beantwortet haben und man nicht auf neuausgefaltete Fragen oder Themen im selben Thread eingehen könnte. Meist bezieht man sich ja auch nicht aufs eigentliche Thema sondern schaut sich (vor allem wenn hunderte vorher dran waren) nur die letzten paar Postings an. Also ein wenig Verständnis muß man dafür ja auch haben! Threads schließen ... ich weiß nicht ob das immer im Sinn des Thread-Eröffners ist. Man sollte sich doch schon mit ihm einigermaßen abgleichen, damit auch alle wichtigen Fragen möglichst beantwortet wurden. Absolute hirnrisse Threads sollte man nicht nur sperren, sondern vielleicht am besten gleich komplett rauswerfen - vor allem wenn´s um die Erniedrigung von Frauen geht oder schon in der Fragestellung ein Vokabular wie bei den betrunkenen Kanalreinigern angewendet wird, da habe ich dann auch kein Verständnis mehr. Sonst find ich alles ok bis jetzt und ich mache mir eigentlich keine wirklichen "Sorgen" um das Fachinformatiker-Forum. Daß die Kontrolle funktioniert kann ich nur bestätigen - wenigstens schreiben mir ein paar der Sittenwächter ab und zu mal eine nette Mail! Ich glaube die erste Hand ist schon durchgezählt und von der Zweiten bleiben mir nur noch ein Paar Finger. (hoffentlich werde ich nicht irgendwann mal gesperrt!) <FONT COLOR="#a62a2a" SIZE="1">[ 20. September 2001 00:38: Beitrag 1 mal editiert, zuletzt von Crush ]</font>
  19. Nichts ist deprimierender als die Erkenntnis, daß sich "scheinbar" nichts mehr verändert und alles sich vor einem wie ein Film abspielt. Jeden Tag dasselbe (gähn). Der Traum von der Frau - kann auch nach einiger Zeit zum Alptraum werden (muß aber nicht). Man erhofft sich irgendwo noch einen Knaller im Leben der einen wieder mal in eine andere Richtung wirft. Das ist wohl auch ein kleiner negativer "Nebeneffekt" der Knallbunten-Generation. Heute noch Bungee-Jumping, morgen vom Hochhaus runterrennen, Skifahren und Fallschirmspringen ... bringt halt alles irgendwann auch nicht mehr den Kick. Wann hat denn einer von Euch mal einen Film im Fernsehen angesehen und war noch so mitgerissen, daß er heulen mußte oder sich vor Angst versteckt hat??? Dieser Hype killt irgendwas in uns und dann kommt irgendwann die große Depression. Kommt dann noch eine (langweilige) regelmäßige tägliche Tätigkeit (wie Arbeit) dazu ist alles vorbei. Noch nie haben sich so viele in (teils organisierten) Selbstmordabsichten gestürzt wie heute!!! Kann ein Mensch denn heute nicht mehr zufrieden sein? Früher hat es gereicht den Kindern beim Spielen zuzuschauen und mal im Wald spazieren zu gehen, aber heute? Irgendwie entarten die Menschen psychologisch! Bitte nicht abwegig auffassen, man kann ja nichts dafür - die Gesellschaft und die Geschehnisse um einen herum bringen einen doch früher oder später in diese Geistesstimmungen, ich beobachte das halt bei vielen Menschen und ich bin schockiert, wie extrem depressiv diese Leute dann werden können. Manchmal kommen die da nie wieder heraus und sind für ihr Leben lang krank. Macht bloß nicht den selben Mist! Psychologisch "wird" man nicht geheilt - sondern man muß das selber in die Hand nehmen und etwas dagegen unternehmen, bevor es ausartet! <FONT COLOR="#a62a2a" SIZE="1">[ 20. September 2001 00:21: Beitrag 2 mal editiert, zuletzt von Crush ]</font>
  20. Also für mich sieht das alles eher so aus, als ob die Variable einfach in dem Wert ausgegeben werden soll, der benötigt wird. Bei C++ würde ich das mit dem Überschreiben des Rückgabewertes machen. Aber in C??? Er weiß nicht, welcher Typ wo verlangt wird. Generell sollte wohl ein String die Variable beinhalten. Wird allerdings ein Int verlangt, soll ein int ausgegeben werden. Also in C könnte ich mir höchsten vorstellen, daß es eine Funktion gibt, die mir die Variable in den benötigten Parameter umrechnet und bereitstellt... ..ODER ... Vielleicht will er aber auch nur ein Makro? #define test 12 read_objid(test, anOID, &anOID_len); dann wird im Sourcecode vor dem Übersetzen aus der Zeile read_objid(12, anOID, &anOID_len); das 12 ist ein Int und somit wird alles ordentlich abgespult! Also eines mußt Du schon wissen. Man sollte eigentlich immer genau wissen, wo welcher Typ benötigt wird und dementsprechend versuchen den Typ bereitzustellen. Selbst bei überschriebenen Rückgabewerten muß ich wissen, WAS für Rückgabewerte denn so überhaupt drankommen können und kann dann entsprechend eine Funktion dafür bereitstellen. Ein Casten geht von String auf int natürlich nicht. Aber man kann sich eine Number-Klasse erstellen (ist halt wieder C++) und dann wird halt reingeschrieben: read_objid((Number)test, anOID, &anOID_len); angenommen test wäre ein String, dann wird Number mir den String in einen Int umrechnen und diese Zahl an die Funktion als Parameter übergeben. Es ist sogar möglich ein #define-Makro zu schreiben, welches mir einen String in einen Int-Wert umrechnet. Allerdings sind halt die Makros VOR dem Kompilieren aktiv und nicht zur Laufzeit. Deshalb muß der Inhalt der Variable bei Makros konstant sein. Mehr fällt mir jetzt erstmal auch nicht ein, vielleicht war ja das Richtige dabei. Warten wir´s ab.
  21. Crush

    Rückgabewert vector?

    "Beim Stöbern im Netz habe ich vorhin folgenden Satz gefunden: "Never return containers! Return iterators!" :-) " Klingt vernünftig. Container sollten meiner Meinung nach immer irgenwo fest verankert sein und nicht bewegt werden. Zugriffe von außen sollten am besten über eigens dafür vorgesehene Methoden ablaufen, damit kein Unfug damit angestellt werden kann. "Wir haben doch noch einen anderen Template-Guru hier, ich glaube Crush... " Ich sehe mich schon im Jogasitz über meinem Nagelbrett schweben (grins)! Nein, ernsthaft: Ich habe selber noch nicht eine eigene Template-Klasse erstellt - bin doch selbst noch beim Lernen! Aber so unheimlich kompliziert ist´s wirklich nicht wie man´s gerne darstellt - wenn man nur versteht, wie´s geschrieben werden soll (Platzhalter für den Datentyp: Das ist doch so extrem abstraktes Denken nun auch wieder nicht). In billigem C-Code habe ich schon wesentlich abstrakteres gesehen (rekursive Lösung der Türme von Hanoi oder (auch rekursiv) das 8-Damen-Problem zum Beispiel hab ich bis heute noch nicht gerafft). Rekursion in der Praxis wäre auch mal einen Thread wert. Ich persönlich halte Multimac für den Erfahrensten dem ich hier im Forum bisher begegnet bin! (ok, vielleicht noch 1-2 andere kann man noch dazunehmen)
  22. Dann geht doch mal bei gamespot.com rein. Die movies dort im .asf-format kann man hin- und herspulen wie man will!
  23. Crush

    Rückgabewert vector?

    @Maddin: Sollte ja auch nur eine Alternative zum Klassenverpacken sein, weil ich´s halt vorher mal angesprochen habe habe ich es auch gleich mit reingenommen. Man kann das ganze ja auch als globales Array verwenden. @Poldi: Huhu das Ding heißt nicht elementAt() sondern nur at() schau doch mal oben in den Source. Da habe ich halt anstatt den . einen -> weil´s halt Zeiger sind. Mit Deinem Source: string test; vector<string> myVek; test = myVek.at(20); Ich weiß ja nicht welchen Compiler Du verwendest, aber wenn Du den . beim Studio benutzt werden alle verfügbaren Funktionen dargestellt und da findet man auch nur das .at()! no matching function heißt ja auch: keine passende Funktion gefunden (existiert so halt nicht unter diesem Namen oder mit diesen Parametern)!
  24. Crush

    Internet und C++

    Also lies mal diesen alten Beitrag von mir, der hilft bestimmt ein wenig weiter: (http://www.fachinformatiker.de/cgi-bin/ubbcgi/ultimatebb.cgi?ubb=get_topic&f=21&t=000114&counterhit=yes) Das Wichtigste kannst Du in den AFX von der MSDN finden. Tipp mal die Suchbegriffe aus dem Source ein. Die Funktionen sind teilweise so simpel gehalten, daß es wirklich kein Problem sein sollte schnell etwas auf die Beine zu stellen.
  25. Bei Borland heißt das bestimmt nur anders und vielleicht sehen die Funktionsnamen ein wenig geändert aus. Leider habe ich mit dem Borland-Compiler nix am Hut und deshalb: Suchfunktion in der Hilfe für INet InterNet Connectivity oder ähnliches verwenden - die .h-Datei gibt´s bestimmt irgendwo.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...