DDX_IPADDRESS mit dwIP und dann -> strIP, aber wie?



  • Moin.

    Irgendwie stell ick mir zu braselig an.
    Ick hab uffm Dlg nen Ctrl vom Typ IP_ADDRESS Control.
    Dieses lass ick per DDX_IPADDRESS mit nem DWORD dwIp Daten austauschen.

    Nun möchte ick aus dwIP eine CSTRING IP erstellen, aber da kommt immer nur Müll bei mir raus.

    Mein letzter Versuch war:

    str.Format(_T("%c.", dwIP & 0x000000FF));
    strIP = str;
    str.Format(_T("%c.", dwIP & 0x0000FF00 >> 8));
    strIP+=str;
    str.Format(_T("%c.", dwIP & 0x00FF0000 >> 16));
    strIP+=str;
    str.Format(_T("%c", dwIP & 0xFF000000 >> 24));
    strIP+=str;
    

    Andere Versuche brachten och nur Müll in strIP. 😢
    Kann mir jemand helfen?
    Scheint für mich heut noch zu früh zu sein, um es allein zu schaffen. ^^



  • Die &-Ausdrücke klammern und %d statt %c. Man kann das auch alles in einen einzigen Format-Aufruf packen.



  • Hab ick probiert, klappt nich. 😢
    Sowohl did mit &einklammern (muss ick dide überhaupt?) und %d statt %c.
    Kommt leider och nur Müll raus.

    Eingegebene Adresse: 192.168.168.168
    Benutzter Code:

    str.Format(_T("%d.", (m_dwIP & 0x000000FF)));
       strIP = str;
       str.Format(_T("%d.", (m_dwIP & 0x0000FF00)>>8));
       strIP+=str;
       str.Format(_T("%d.", (m_dwIP & 0x00FF0000)>>16));
       strIP+=str;
       str.Format(_T("%d", (m_dwIP & 0xFF000000)>>24));
       strIP+=str;
    

    Inhalt von strIP: "1241328.1241328.1241328.1241328"}



  • Kannst du auch normales Deutsch schreiben?

    Zeig doch mal den Wert von dwIP und den "Müll".



  • Ey, nischt jegen meen deutsch hier! 😉

    s.o.



  • Fiesek schrieb:

    Ey, nischt jegen meen deutsch hier! 😉

    Du kannst schreiben wie du willst, und ich kann helfen, wem ich will.



  • Na wattn Glück, dat wir uns hier innem freien Land befinden. 🙂

    Aber dennoch danke für Deinen Hilfeversuch bis hier hin.



  • So, hab did jetze so jelöst:

    DDX_TEXT (pDX, ID_IP, strIP)
    

    Und zack, Problem jelöst.
    In strIP (CString) steht jetze meene erwartete IP-Addresse.

    Möglich wäre auch:

    DDX_Control (pDX, ID_IP, ctrlIP)
    

    Danach:

    BYTE F0, F1, F2, F3;
    ctrlIP.GetAddress(F0, F1, F2, F3);
    strIP.Format(_T("%d.%d.%d.%d", F0, F1, F2, F3);
    

    Oh man, warum stand dann dieser Mist in der MSDN?:

    void AFXAPI DDX_IPAddress(
       CDataExchange* pDX,
       int nIDC,
       DWORD& value 
    );
    

Anmelden zum Antworten