GetComputerName verhält sich.. nun eigenartig



  • Folgendes:

    char Computername[MAX_COMPUTERNAME_LENGTH+2];
    unsigned long ms = MAX_COMPUTERNAME_LENGTH + 1;
    if ( !GetComputerName(Computername, &ms) ) strcpy(Computername,"<Error Computername>");
    

    Das Problem ist, dass er immer nach strcpy(Computername,"<Error... abzweigt, in Computername nur Müll drin steht(logisch), und GetLastError gibt errorcode 0x6 zurück (INVALID_HANDLE_ERROR). Hä?!
    Sieht jemand was ich falsch mach?

    Edit: Win2k



  • Auch dann sollte doch in Computername kein Müll drinstehen, sondern "<Error Computername>". Bei mir funktioniert dein Code allerdings 😕



  • Jo, klar, steht dann "<Error..." drin. Ich meinte mit "müll", dass was er vorher (vor strcpy(...) da drin stehen hatte

    Auf jedenfall wirds echt seltsam. Ich hatt ja gehofft, das sich das Problem mit nem Neustart löst, dem ist aber nicht so 😞 😕
    Noch seltsamer: Über GetEnvironmentVariable funzt es 😕 😮

    Bitte erklär mir das einer... da ist doch etwas fundamental Schrott.. 😞



  • mach mal ein ganz neues programm wo NUR dieser code drinsteht und eine ausgabe.



  • Ich habs! 🙂
    Schande über mich, an der betreffenden Codestelle hatte ich etwas weggelassen, sorry.

    char Username[UNLEN+2];
    char Computername[MAX_COMPUTERNAME_LENGTH+2];
    unsigned long ms = UNLEN + 1;
    
    if ( !GetUserName( Username,&ms) )
    	strcpy(Username,"<Error Username>");
    
    ms = MAX_COMPUTERNAME_LENGTH + 1; // Diese Zeile hat gefehlt
    if ( !GetComputerName(Computername, &ms) ) 
    	strcpy(Computername,"<Error Computername>");
    

    Diese Eine Zeile hat das alles ausgemacht. Anscheindend wird der Inhalt von ms dann auf die Länge des String aus GetUserName gesetzt.
    trotzdem danke an euch .. hm, hätt mir früher auffallen können, dass der Wert nicht grundlos nicht By Value übergeben wird 😞 😡


Anmelden zum Antworten