Stringübergabe von vb in c++



  • Hallo Leute,

    ich will eine 8Bit Binärzahl in eine Dezimalzahl umwandeln.
    In VB wird die rechnung aufgerufen die in C++ gemacht wurde.
    Ist ja quasi nur addieren. Bloß mit dem Parameter habe ich Probleme.
    C++ Code:
    long _stdcall summe(char *str)
    {
    long x;
    x=str[1]+str[2]+str[3]+str[4]+str[5]+str[6]+str[7]+str[8];
    return x;

    }

    VB Code:
    dualzahllaenge = Len(Text1.Text)
    bit = 128
    i = 1

    If IsNumeric(Text1.Text) And dualzahllaenge = "8" Then

    Do

    Feld(i) = zahl * bit
    bit = bit / 2
    i = i + 1

    Loop Until i = 9

    dezimalzahl = summe(Feld(8))

    Text2.Text = dezimalzahl
    ...
    Dezimalzahl = Long , der Rest Integer. Bei Fragen schreiben?!
    Hoffe ihr könnt ihr helfen.



  • Wie ist 'Feld' deklariert? Aufgrund der Benutzung gehe ich von einem Integer-Array aus, Deine C++-Funktion erwartet aber einen Zeiger auf char. Das kann nicht klappen. Abgesehen davon sollten Deine Indizes nullbasiert sein, daher ist Dein C++-Code falsch -- 'str[8]' verweist auf das 9. Zeichen und das sollte es bei einer 8-Bit-Zahl nicht geben.


Anmelden zum Antworten