Zum Inhalt springen

Patrick_C64

Mitglieder
  • Gesamte Inhalte

    60
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Patrick_C64

  1. ... das Switch kann natürlich gekürzt werden, einfach die Cases für die Zahlen durch folgendes ersetzen. default: curdigit =(int) hex[pos]-'0'; break;
  2. Hi, also einlesen klappt soweit ?! Geh ich zumindest erstma von aus? Und ansonsten vllt. hilft Dir das hier weiter, wenn ich jetz vorbeigeschossen hab sry. brauchte Ablenkung und hab mir einen Teil deines Anliegens als Aufgabe genommen, hätte es gerne noch schicker gelöst aber mein C++ können ist noch naja sagen wir mal so .... bescheiden . #include <iostream> using namespace std; long HDez(char hex[],int sze,bool showcalc=false); //forward decl. int main() { char myHex[]="043E"; cout<<HDez(myHex,sizeof(myHex))<<endl; //optional kann Berechnung ausgegeben werden! } long HDez(char hex[], int sze,bool showcalc) { int curdigit=0; long output =0; int pos =0; for(int x=0;x<sze-1;x++) { pos =sze-x-2; curdigit = 0; switch (hex[pos]) { case 'F': case 'f': curdigit=15; break; case 'E': case 'e': curdigit=14; break; case 'D': case 'd': curdigit=13; break; case 'C': case 'c': curdigit=12; break; case 'B': case 'b': curdigit=11; break; case 'A': case 'a': curdigit=10; break; case '9': curdigit=9; break; case '8': curdigit=8; break; case '7': curdigit=7; break; case '6': curdigit=6; break; case '5': curdigit=5; break; case '4': curdigit=4; break; case '3': curdigit=3; break; case '2': curdigit=2; break; case '1': curdigit=1; break; case '0': curdigit=0; break; }; int hlpr =(16<<((x-1)*4)) ; if (hlpr<1) hlpr=1 ; output+=(curdigit*hlpr) ; if (showcalc==true)cout<<"HEX <"<<hex[pos]<<"> |"<<curdigit<<"*"<<hlpr<<"="<<(curdigit*hlpr)<<endl; }; return output; }; mfg. Patrick
  3. Hehe das war eben wie ein kleiner stupser , hmm hab mir deinen Vorschlag mal kurz durchdacht, und ja im Prinzip haste Recht !! Ein sglibRC hat ein sglibWindow, welches ein HWND verwaltet. Über sglibUpdate wird in einer Schleife in jeder sglibWindow Instanze ein PeekMessage auf das HWND und anschliessendes Translate und Dispatch durchgeführt, ist eigtl. nicht verkehrt aber vllt auch nicht sonderlich richtig. Ich hatte auch kurz mein Konzept aus den Augen verloren als ich über deine Idee nachdachte, hab kurzerhand in sglib::Update ausserhalb der Update schleife die Messagepump reingesetzt in einem While Konstrukt, läuft genau wie vorher . Dann blitzte es Kurz im Kopf und mir erschien wieder das das garnicht gut ist (Des Konzeptes wegen) denn wenn ich sglibWIndow weiter ausbaue und dort nach dem Peek die Messages erstmal Intern verarbeite kann, so das ich auf ein Destroy oder Quit reagieren kann und somit die sglibWindow Instanze zersöre und den dazugehörigen sglibRC, was mir als recht elegante Lösung erscheint müsste ich mir ja dann was anderes einfallen lassen. Nunja somit kann ich den Fehler auf der Designseite ausschliessen habs ja alternativ Probiert, und das eigenwillige Design ist ja durch die schon im Kopf weitergedachte Funktionalität ne gute Lösung. Hmm die Sache mal in GLUT reinzuschnuppern das wär ja noch ne Idee, vllt. brauch ich ja ma 1-2 Tage abstand von dem Thema (glaub kaum das ich mich dazu zwingen kann). mfg. Patrick und nochma vielen Dank das du dir Zeit genommen hast!
  4. UPS Sry.!, ich deperter Typ, hab vergessen das da Linkedlist felt Sry! Komplett !! achso libgdi32 und libopengl32 linken! (wieder zu spät mitbekommen konnte wieder nicht editieren wär ich nich auf meinem 3. system gewesen wärs mir garnich aufgefallen) mfg. Patrick
  5. Hi Klotzkopp, du kannst es mit sglib_test.cpp Testen und somit Rekonstruieren, mir ist was aufgefallen hab einfach weiter Probiert, da ich denke ich kann dir vertrauen wenn du sagst Dispatchmessage hält den Programmablauf nicht an, im Prinzip glaub ich das dass soweit auch korrekt ist, durch einfaches klicken ins Fenster oder dergleichen läuft auch alles weiter hab mir n kleine Ausgabe in die WinProc geaddet, aber wenn ich das Fenster über die Titelleiste verschiebe oder dort nur MouseLeft halte das frierts ein, naja wie auch immer zur Lösung werde ich so oder so nicht um Threads herumkommen und das will ich eigtl. auch garnicht ich wills ja letzlich können. Dickes dickes THX @Klotzkopp schon alleine zu Wissen das mir da wer beiseite steht gibt mir wieder n bisl Kraft und Motivation, wobei heute die Luft auch fasst raus ist, Umschulung (FI/AE) ganzen Tag am Rechner und nebenbei Coden Coden Coden, bzw. zur Zeit eher Lesen ,Recherchieren und Probieren. mfg. Patrick @lilith2k3 meine PN angekommen ?
  6. Sry vertippt bei der URL, konnte auch nicht mehr Editieren. AGAIN SOURCE
  7. Hi Klotzkopp, Dispatchmessage blockiert in diesem Falle, wenn du ein Dispatchmessage hast welches das nicht tut, wir könn gerne Tauschen .., ne ma Scherz bei Seite, nach dalbbern is mir eigentlich ehh nich mehr. Das "if" hier ist nur ein verzweiflungs "if" eigtl. ists ja n While Konstrukt. if ( PeekMessage(&msg, hWnd, 0, 0,PM_REMOVE)>0 ) { cout <<">>> before Dispatch "; TranslateMessage(&msg); DispatchMessage (&msg); cout <<"| after Dispatch <<<"; }; Sobald ich das Fenster verschiebe wird kein "after Dispatch" mehr ausgegeben bis ich das Fenster wieder loslasse! Also wenn das nicht an der Stelle blockiert wo dann?! Ne Schleife ? Wie kommst du da jetz drauf ? Weil sich die dreicke drehen? Beim Aufruf von Draw wird einfach eine Variable um eins erhöht. Interner Ablauf in sglibUpdate: Liste die die erstellten RC's durchgeht und ein Update für die jeweilige Instance aufruft. for(link<sglibRC> *RCLink=--RClist;RCLink!=NULL;RCLink=RClist++) { RCLink->data.update(); }; Der RC kümmert sich während seines Updates wiederum um das Update der Windows, also auslesen der MsgPump, Translaten und Dispatchen. So und da bei Dispatchmessage ein "Break" ensteht kann ich dir sagen wer sich dann um die MessagePump kümmert, niemand! Da es ja in "dieser" "stoppt". Hoffe hab mich halbwegs verständlich ausgedrückt muss eingestehen deine Fragen verunsichern mich, ich kämpf hier Tagelang mit dem Stop der durch Dispatchmessage ensteht und du erzählst mir Dispatchmessage hält den Programmablauf nicht an,...,., ?!?! :eek Falls noch was unklar einfach Fragen Source Code. ( sry. momentan leicht unsauberer style! um nicht zu sagen schlampig aber darum kümmer ich mich wenn das mit den Threads bzw. einen Ungestörten Programmablauf klappt, eigtl. schreibe ich rel. sauber siehe linkedlist mom. gibt es aber andere Prioritäten.) Hab auf Codeguru schon paar Artikel gefunden, da hatte ich gestern sicher auch schonmal durchgeklickt aber wahr wohl zu groggy, so habe ich da jetzt zumindest schonmal n paar Infos und "Inspiration". Besten Dank für deine Zeit, hoffe ich bekomme das noch hin, bin für jede und vor allem auch deine Hilfe Dankbar! mfg. Patrick
  8. Hi Klotzkopp, < bisl OT: Wie gesagt bin im Prinzip in der C++ lernphase, komme aus na anderen ecke, da wars easy, man hatte Listen, konnte flink Fenster erstellen in denen man Rendern konnte etc. (n recht gutes OO-Basic, compiliert für Win,Lin,Mac) Zudem schreibe ich sehr gerne viel selbst, ja die Sache mit dem "Rad" ist mir bewusst aber von nichts kommt nichts und so lernt man am besten finde ich! Deswegen möchte ich mir eine "sgLib" SimpleGraphicsLibrary schreiben mit der ich einfach Fenster erstellen kann in denen ich mit einfachen Befehlen Zeichnen möchte etc. und BackToTopic> sglib LbIFace; sglibRC RC_win01=LbIFace.GetRndrCntxt("win",w,h,X,X); sglibRC RC_win02=LbIFace.GetRndrCntxt("win",w,h,X,X); LbIface.SetCrntRndrCntxt(RC_win01); sglib.drawImage (sglibIMG,x,y); // more drawing to RC_win01 is possible! LbIface.SetCrntRndrCntxt(RC_win02); sglib.drawImage (sglibIMG,x,y); RC ist in dem Falle mein RenderContext der durch sglibRC initiiert/ zur verfügung gestellt wird, sglibRC initiiert ein Fenster (per WinApi) und stellt den RC zur verfügung. Steh wie gesagt noch ganz am Anfang, Fenster lassen sich erstellen und eine PseudodrawRoutine sorgt für ein sich drehendes Dreieck wenn LbIface.Draw() aufgerufen wird, dies wird dann im gesetzten sglibRC gezeichnet. N'einfaches OGL dreieck gedreht über ne ständig imkrementierende in der Methode angelegten statischen Variable. Hab also das Konsolenfenster (was später sicher nicht mehr benötigt wird!) und 2 sglib RC's, im Konsolenfenster lasse ich momentan im Interval (x%100==1) ein "x" ausgeben um zu sehen obs kontinuierlich läuft. Tut es auch allerdings sobald ich ein sglibWindow verschiebe stopt sich die Drehung aller Dreiecke und auch die Ausgabe des "x", da ja DispatchMessage den Programmablauf erstmal unterbricht. (Verschieben über die Titelleiste). Wenn es möglich wäre das DispatchMessage nur 2 Messages verarbeitet und dann erstmal rauspringt (vllt. mit WM_Timer ?!?!) wär das schonma n Ansatz, allerdings ein so dreckiger das ich das lieber gleich lasse. Weiss nich wie ichs Anstellen soll, komplett jeden sglibRC (verfügt über das Fenster ( nur das Fenster in einen Thread? ) ) in einem Thread stecken, oder die Nachrichtenschleife selbst nur im Thread abfragen? Selbst wenn ich da jetz schonma ne Idee hätte wüsste ich nicht wie ich das realisieren könnte. (Danke fürs Zeit nehmen is ja was mehr an Text geworden!) mfg. Patrick
  9. Hmm vllt. den dass das Lernen anhand von Praxis einfacher ist anstatt mit bloßer Theorie?! Das es in der STL diverse Container gibt die das selbige tun wie meine DBLLnkdLst steht außer Frage, ich habe dies eigtl. nur angemerkt um zu sagen das ich nicht ganz unbeholfen bin auch wenn es manchmal den Eindruck erwecken kann!!(.... und sicher wird). Aber mal ganz davon, was hat das mit meinem Anliegen zu tun, wenn du mich auf die Sinnfreiheit einer selbstgeschriebenen Linkedlist hinweisen wolltest dann muss ich dich Entäuschen......, wenn du was Produktives zu meinem Anliegen beizutragen hast immer her damit! Versteh mich nicht falsch aber da nichts zu meinem Anliegen in deinem Post auftaucht nehme ich das erstmal als Provokation wahr, wenn das wirklich nur als Frage gemeint war um einen Überblick zu meinem Anliegen zu bekommen dann Sry!!, sollte hiermit aber beantwortet sein . mfg. Patrick
  10. Hi Klotzkopp, ich erstelle mein Fenster mit WinApi, also ohne MFC. "Ganz normal" halt. Später werde ich andere Libs nutzen aber erstmal muss ich alles verstehen, ich programmiere schon lange aber fuchs mich jetz erst in C++ ein. Ein DblLkndLst(Template!) hab ich mir schon geschrieben während des lernens auch das erstellen von Fenstern sollte mir nicht mehr allzu schwer fallen nur das Threading das will mir einfach nicht in den Kopf nicht ansatzweise. Wenn du magst hillf mir bitte! Source hau ich gerne hier rein zum runterladen! - WinApi - Kein Boost und nichts - einfach nur C++ windows.h, vllt. noch process.h (wobei ich denke das ist C ?!) ich möchte einfach nur das meine Konsole ungestört weiter arbeitet während ich zb. ein Fenster verschiebe bzw. solange DispatchMessage das Programm eigentlich stoppt. Das kann doch alles nicht so schwer sein,... mein Kopf brummt vor Semaphore, Mutex, MessagePump/Pipe, NachrichtenQueue ,PostThreadMessage, Threading etc. Alles andere konnte ich doch auch Autodidaktisch er"hasch"/"arbeit"en aber da bin ich jetz echt am ende meines IQ's *schmoll,... mfg. Patrick und Thx für die Schnelle Antwort! (Rechtschreib und Grammatikfehler, sry. sitze seit 3 Tagen an ein und dem selben Problem! und bin einfach nur Groggy! )
  11. Hallo @ALL, eigtl. sehe ich zu das ich meine Sachen alleine geregelt bekomme, aber diesmal bin ich an einem Punkt angekommen wo ich nicht mehr weiter weiss. Auch Recherchen und ausseinandersetzen mit dem Thema, 3-4 Tage!, half nichts. Könnte mir bitte jemand ein Bsp. posten? Es ist eigtl. nicht meine Art nach Sourcen zu fragen aber in diesem Fall glaube ich, komme ich nicht anders weiter. Meine sglib ("simpleGraphics") kann Fenster mit RC's erstellen und das funktioniert auch soweit auch kann in jedem Fenster ein seperater RC erstellt und bedient werden. Wenn ich jetzt ein Fenster verschiebe, wird der komplette Programmablauf gestoppt, also die sich drehenden dreiecke werden nicht mehr gedreht...... Was ich benötige ist ein "einfaches" Bsp. wie man in C++ threadbasiert den MessageQueue eines Fensters abarbeitet, so dass ich das für meine sglibWindows nutzen kann. Ich kenne auch jemand der Dipl. Informatiker ist, diesen habe ich erst nach 3 Tagen ergebnissloser Try and Lose Orgien konsultiert, doch leider hat er eher mit C# als C++ zu tun und konnte mir Spontan auch nicht weiterhelfen. Bevor ich aus Verzweiflung Wahnsinnig werde, wende ich mich hier an die Erfahrenen C++ Programmierer die mir das auch ggf. beantworten können und möchten! mfg. Patrick

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...