Hexwerte richtig Augeben lassen - bekomme nur kryptisches


  • Mod

    Matthias_ schrieb:

    Danke aber an alle, die sich um diesen Fehler bemühen!!!

    Du machst es uns nicht gerade einfach. Zeig doch mal ein (minimales aber compilierbares) Beispiel, welches den Fehler aufweist. Der bisherige Code zeigt nämlich keinen Fehler und deinen Angaben zufolge ist das aber gar nicht dein Code, sondern du machst etwas ganz anderes.



  • Ich möchte nur über eine Com Schnittstelle etwas auslesen.
    Das ist der Hintergedanke.

    ZUVOR versuche ich mit diesem ersten Schritt zu schauen, ob ich mir irgendwie vernünftig HEX Werte anzeigen lassen kann.

    Und dieser erste Schritt haut schon leider nicht hin.

    Der Code den ich gepostet habe steht so in meinem Programm und im Moment nichts anderes.
    Über einen "OK" Button wird das ausgeführt. Das war es auch schon! (OnOK())

    Aber im Dubug bekomme ich nur komische Werte. (wie ich vorher schon gepostet habe)

    Kann ja auch gut sein, dass ich einfach einen dummen Fehler irgendwo gemacht habe oder ich auf diese Weise garnicht zur Ziel komme.....

    THX Anyway


  • Mod

    Betonung liegt auf compilierbar. Wenn man deinen Code von oben nämlich compilierbar macht, dann funktioniert das wunderbar. Da dein Code aber nicht compilierbar ist, hast du höchstwahrscheinlich an anderer Stelle noch mehr Code und dort könnte der Fehler liegen. Eine compilierbare Version deines Codes könnte zum Beispiel so aussehen:

    #include <iostream>
    
    void OnOK()
    {
      char buf[8] = { 0 };
    
      buf[0]=0x11;
      buf[1]=0x31;
      buf[2]=0x55;
      buf[3]=0x03;
      buf[4]=0x72;
      buf[5]=0x14;
      buf[6]=0x13;
      buf[7]=0x30;
    
      int read =8;
    
      for(int i=0; i<read; i++)
      {
          unsigned int value = static_cast<unsigned int>(buf[i]);
          std::cout << std::hex << value << std::endl;
      }
    }
    
    int main()
    {
      OnOK();
    }
    

    Und jetzt sag mir, ob dieser Code bei dir den beschriebenen Fehler erzeugt. Höchstwahrscheinlich nicht (Falls doch, hast du ein wirklich übles Problem). Und das obwohl ich nichts entscheidendes geändert habe. Da siehst du, wie wichtig es ist, bei Fehlern ein komplettes Beispiel zu bringen.



  • Alles klar, habs verstanden, danke dir.

    Hier also nochmal:

    #include <iostream>
    
    void CNeuDlg::OnOK() 
    {
    char buf[8] = { 0 };
    
    buf[0]=0x11;
    buf[1]=0x31;
    buf[2]=0x55;
    buf[3]=0x03;
    buf[4]=0x72;
    buf[5]=0x14;
    buf[6]=0x13;
    buf[7]=0x30;
    
    DWORD read =8;
    
    for(int i=0; i<read; i++)
    {
        unsigned int value = static_cast<unsigned int>(buf[i]);
    	std::cout << std::hex << value << std::endl; 
    }
    }
    
    int main()
    {
    	CNeuDlg::OnOK();
    }
    

    Bekomme hier Fehler wie folgt:

    error C2248: Kein Zugriff auf protected Element



  • Matthias_ schrieb:

    Alles klar, habs verstanden

    Nicht so richtig. Nimm doch bitte genau den Code von SeppJ, ohne etwas hinzuzufügen oder wegzulassen.



  • glaub dein problem liegt an anderer stelle 😞
    lies dir doch den thread mal durch



  • warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen



  • Matthias_ schrieb:

    warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen

    ...unwichtig. Und was ist nun das Ergebnis, klappt die Ausgabe oder nicht...?



  • bekomme keine Ausgabe.

    hier noch der 2te Fehler (sorry, hatte ich eben noch vergessen dazu zu kopieren)

    fatal error LNK1120: unaufgeloeste externe Verweise



  • Dir muss man aber auch alles aus der Nase ziehen...

    Welche Verweise fehlen?
    Simon



  • error LNK2001: Nichtaufgeloestes externes Symbol "protected: virtual void __thiscall CSdDlg::OnOK(void)" (?OnOK@CSdDlg@@MAEXXZ)
    Debug/sd.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise

    sorry, dachte das hätte so schon gereicht 😞



  • Nukularfüsiker schrieb:

    Matthias_ schrieb:

    Alles klar, habs verstanden

    Nicht so richtig. Nimm doch bitte genau den Code von SeppJ, ohne etwas hinzuzufügen oder wegzulassen.

    Das bedeutet vor allem ohne irgendwelche Textboxen!



  • Der Linker sagt CSdDlg::OnOK(..) ist deklariert, aber nicht implementiert.
    Implementiere es.. kann auch ein Schreibfehler sein.



  • Ach ja, nur so nebenbei:
    Mit cout und Konsorten bekommt man typischweise keine Ausgaben in eine Textbox oder sonstwelche GUI Text-Widgets.



  • @Tachyon: habe keine Textboxen drin

    @theta: habs implementiert und habe jetzt lediglich noch 1 Warnung und kann den Dedug starten. Bekomme aber keine Werte.

    zur sicherheit hier die Implentierung:

    void CSdDlg::OnOK()
    {
    
    }
    


  • Matthias_ schrieb:

    @Tachyon: habe keine Textboxen drin

    @theta: habs implementiert und habe jetzt lediglich noch 1 Warnung und kann den Dedug starten. Bekomme aber keine Werte.

    zur sicherheit hier die Implentierung:

    void CSdDlg::OnOK()
    {
    
    }
    

    Verdammt noch mal, ohne CSdDlg. Also ohne irgendwelche Klassen...

    So den Code in eine cpp kopieren. Keine zusätzlichen Header, keine zusätzlichen Dateien außer der cpp in die der Code kopiert wird:

    #include <iostream>
    
    int main()
    {
    
        char buf[8] = { 0 };
    
        buf[0]=0x11;
        buf[1]=0x31;
        buf[2]=0x55;
        buf[3]=0x03;
        buf[4]=0x72;
        buf[5]=0x14;
        buf[6]=0x13;
        buf[7]=0x30;
    
        size_t read = 8;
    
        for(int i=0; i<read; i++)
        {
            unsigned int value = static_cast<unsigned int>(buf[i]);
    		std::cout << std::hex << value << std::endl;
        }
    	return 0;
    }
    

    Das funktioniert definitiv auch mit VS 6.



  • ich glaub er will einfach keine konsolen anwendung 😕


  • Mod

    Oder alternativ: Gib uns endlich mal dein Programm, welches den Fehler zeigt. Das der hier von uns gezeigte Code auch unter VS6 funktionieren würde, nimmt wohl jeder an. Interessanter wäre ja, wo dein Fehler liegt. Also zeig uns mal ein compilierbares Beispiel mit deinem Fehler. Meinetwegen auch mit Textboxen und was immer dazu gehört, aber vor allem compilierbar!



  • bekomme grade laufend Bluescreens, wenn ich versuche mein MVC 6 zu starten.
    Glaube muss das eben mal neu installieren.

    Sobald ich wieer zugriff habe, schreibe ich natürlich weiter.

    Vielen dank für Eure Bemühungen!
    Werde versuchen das jetzt alles zu beherzigen!



  • bekomme grade laufend Bluescreens, wenn ich versuche mein MVC 6 zu starten.
    Glaube muss das eben mal neu installieren.

    Denke nicht dass das was mit VS zu tun hat. Guck ob deine HW in Ordnung ist...

    Simon


Anmelden zum Antworten