2 probleme ?!?



  • moin ich hab 2 probleme

    1. ich möchte wenn man man auf eine checkbox klickt entweder eine 1 bzw eine 0 in die setup.ini speichern
    wollte es so machen aber dann kommt folgender fehler:
    "error C2106: '=' : Linker Operand muss ein L-Wert sein"
    was hab ich falsch gemacht ?

    char hg_tmp[2];
        if(m_hintergrund) hg_tmp = "1";
            else hg_tmp = "0";
        WritePrivateProfileString("options","i_hintergrund",hg_tmp,inipath);
    

    2. hab ich ein funktion die testen soll ob das ausgewählte laufwerk eine festplatte/partition ist
    der code sieht folgendermassen aus;

    int Drive = ::GetDriveType( m_partition ); 
    if(Drive != 3) {
        m_pfad.Format("Dies ist keine Partition / Festplatte !");
        m_speicher.Format("");
        m_partition.Format("");
        return false;   // keine festplatte
    }
    

    unter windows 2000 klappt das auch aber habs grad unter win98 ausprobiert aber da gibt er "Dies ist keine Partition / Festplatte !" aus

    liegt das vielleicht daran das ich bei win2000 NTFS und bei win 98 FAT32 hab ?
    ist FAT ein anderer drivetyp ? oder is das problem ein ganz anderes ?

    plz help



  • Zum ersten Problem:

    nehmen wir an, m_hintergrund ist die Member-Variable zu einer Checkbox. Dann machste folgendes:

    char hg_tmp[2];
    if(m_hintergrund.GetCheck())
    strcpy(hg_tmp, "1")
    if(!m_hintergrund.GetCheck())
    strcpy(hg_tmp, "0");



  • Hi

    Also zum ersten Problem: Wieso du diese Meldung bekommst ist weil du in der if keinen Vergleich durchführt (==) sondern eine Zuweisung (=). Zudem hast du vergessen die Klammer zuzumachen. Dann hast du noch ein Semikolon (;) dazu gesetzt. Was nicht dort stehen sollte!

    cu C++M@n

    [ Dieser Beitrag wurde am 29.11.2002 um 20:32 Uhr von Unix-Tom editiert. ]



  • Original erstellt von C++M@n:
    **Hi

    Also zum ersten Problem: Wieso du diese Meldung bekommst ist weil du in der if keinen Vergleich durchführt (==) sondern eine Zuweisung (=). Zudem hast du vergessen die Klammer zuzumachen. Dann hast du noch ein Semikolon (;) dazu gesetzt. Was nicht dort stehen sollte!

    cu C++M@n

    [ Dieser Beitrag wurde am 29.11.2002 um 20:32 Uhr von [qb]Unix-Tom** editiert. ][/QB]

    Wo wurde eine Zuweisung gemacht

    if (0) irgendwas
    else
    irgendwas

    ist keine zuweisung sondern ein Vergleich

    Ich vermute das m_hintergrund kein int ist.

    [ Dieser Beitrag wurde am 29.11.2002 um 20:28 Uhr von Unix-Tom editiert. ]



  • jepp das is ne bool
    ich denk mal c++m@n hat die schliesende klammer net gesehn
    jedenfalls gehts jetzt mit der variante gast

    das andere problem hab ich gelöst in dem ich nich
    drive != 3 (keine festplatte)
    sondern
    drive == 2 || drive == 4 || ...
    genommen habe

    damit gehts denn auch bei win98 falls es noch jemanden interessiert


Anmelden zum Antworten