MessageBox Problem



  • Kann mir mal bitte jemand zu dem obigen Source ein (funktionierendes) Beispiel dazu geben? Ich komme mit dem sprintf irgendwie nicht ganz klar. Thx



  • int i = 1337;
    
    // itoa
    char val [11];
    itoa(i,val,10);
    MessageBox(0,val,"Zahl!",MB_OK);
    
    // sprintf
    char val[11];
    sprintf(val,"%d",i);
    MessageBox(0,val,"Zahl!",MB_OK);
    
    // usw.
    // Es gibt 100 möglichkeiten eine Zahl in einen String umzuwandeln, siehe dazu in der C++-FAQ
    

    MfG SideWinder



  • nein. nutz die Forensuche.



  • So, hab erst mal die sprintf methode genommen. jetzt wird die Adresse jedoch als reiner Zahlenwert ausgegeben. Wie kann ich sie Hexadezimal darstellen? beim format control finde ich nix dergleichen. THX



  • %x oder %X



  • Hab %p genommen, das gibt die Addy komplett wieder, also mit den nullen vorne dran.



  • C++ Builder Documentation
    
    Type Char	Expected Input	Format of output
    
    Numerics
    
    d	Integer	signed decimal integer
    i	Integer	signed decimal integer
    o	Integer	unsigned octal integer
    u	Integer	unsigned decimal integer
    x	Integer	unsigned hexadecimal int (with a, b, c, d, e, f)
    X	Integer	unsigned hexadecimal int (with A, B, C, D, E, F)
    f	Floating point	signed value of the form [-]dddd.dddd.
    
    e	Floating point	signed value of the form [-]d.dddd or e[+/-]ddd
    g	Floating point	signed value in either e or f form, based on given value and precision. Trailing zeros and the decimal point are printed if necessary.
    E	Floating point	Same as e; with E for exponent.
    G	Floating point	Same as g; with E for exponent if e format used
    
    Characters
    c	Character	Single character
    s	String pointer	Prints characters until a null-terminator is pressed or precision is reached
    %	None	Prints the % character
    
    Pointers
    n	Pointer to int	Stores (in the location pointed to by the input argument) a count of the chars written so far.
    p	Pointer	Prints the input argument as a pointer; format depends on which memory model was used. It will be either XXXX:YYYY or YYYY (offset only).
    
    Infinite floating-point numbers are printed as +INF and -INF.
    
    An IEEE Not-A-Number is printed as +NAN or -NAN.
    

    Versuch doch mal sowas für Hex-Darstellung:

    char address1[BUFSIZ+1],address2[BUFSIZ+1];
    (void)sprintf(address1, "%n", ptr);
    (void)sprintf(address2, "%X", atoi(adress1));
    
    (void)MessageBox(NULL, address2, "Da:", 0);
    

    ~cp



  • code_pilot was bringen die Casts vor den Funktionsaufrufen?



  • cast-neuling schrieb:

    code_pilot was bringen die Casts vor den Funktionsaufrufen?

    LOL eigentlich nix aber so wird's bei uns in der Firma gemacht 😉 ... gewöhn ich mir halt langsam an 😉 ... es heisst einfach: Der Rückgabewert dieser Funktion wird nicht verwendet ... ach ja BTW wir programmieren noch mit Uralt-C (Kernighan-Richie Compiler), bei uns gibt es auch noch die Schreibweise

    int test(a, b)
       int a;
       int b;
    {
         return (a + b);
    }
    

    bei Funktionen.

    😉



  • LOL eigentlich nix aber so wird's bei uns in der Firma gemacht

    ROFL. Was für Deppen.



  • hihi schrieb:

    LOL eigentlich nix aber so wird's bei uns in der Firma gemacht

    ROFL. Was für Deppen.

    Ja, genau so Deppen wie du. Macht's Spass, andere zu beleidigen? Tut mir leid, das du nicht die Anfänge von C miterlebt und gleich in der Klicki-Bunti Welt aufgewachsen bist. Unsere Software ist schon fast 20 Jahre alt... 😮 😮 😮


Anmelden zum Antworten