RasEnumConnections zeigt müll....



  • Hallo an alle da draußen,

    ich habe hier ein Programm das mir ab einer bestimmten menge RAS Verbindungen
    nur noch müll zeigt:

    int main(int argc, char* argv[])
    {
    RASCONN rasconn[5];
    rasconn[0].dwSize = sizeof(RASCONN);
    
    DWORD dwSize = sizeof(rasconn[0]);
    ULONG lpcConnections;
    try{
    	RasEnumConnections((RASCONN*)rasconn,&dwSize,&lpcConnections);
    
    	for(unsigned long i = 0;i<lpcConnections;i++){
    		char EntryName[RAS_MaxEntryName + 1],
    			 DeviceType[RAS_MaxDeviceType + 1], 
    			 DeviceName[RAS_MaxDeviceName + 1];
    
    			strcpy(EntryName,rasconn[i].szEntryName);
    			strcpy(DeviceType,rasconn[i].szDeviceType);
    			strcpy(DeviceName,rasconn[i].szDeviceName);
    
    		cout<<"Structure Size: "<<rasconn[i].dwSize<<endl;
    		cout<<"Handle RasConn: "<<rasconn[i].hrasconn<<endl;
    		cout<<"Entry Name: "<<EntryName<<endl;
    		cout<<"Device Type: "<<DeviceType<<endl;
    		cout<<"Device Name: "<<DeviceName<<endl;
    		cout<<"--------------"<<endl;
    
    		}
    	}
    catch(...){
    		MessageBox(NULL,"Error in Process!","Error!",MB_OK|MB_ICONERROR);
    	}
    	return 0;
    }
    

    Das ist das ergebnis des ganzen, bei einer DSL Verbindung die ich habe:

    **
    Structure Size: 704
    Handle RasConn: 0x00010000
    Entry Name: DSL
    Device Type: PPPoE
    Device Name: WAN-Miniport (PPPOE)
    --------------
    **

    Ok, so soll es ja auch sein, aber wenn ich ein paar RAS Verbindungen habe kommt das dabei raus:

    👎 👎
    Structure Size: 704
    Handle RasConn: 0x0012ECE4
    Entry Name: X­↕
    Device Type: ù¶ì☻
    Device Name: §└
    --------------
    Structure Size: 1327508
    Handle RasConn: 0x00000003
    Entry Name:
    Device Type: ÷↕
    Device Name:
    --------------

    Was ist das, lese ich aus irgendeinem fremden speicher? Die größe der zweiten Struktur kann ja auch nicht stimmen, oder?

    Danke an alle Antworten....

    Grüße Sandra



  • Ich würde sagen, dass du bei dwSize einen falschen Wert angegeben hast 😉

    Pointer to a variable that, on input, contains the size, in bytes, of the buffer specified by lprasconn.

    Versuch's mal mit

    DWORD dwSize = sizeof(rasconn);
    


  • Danke für deine schnelle Hilfe Flenders...

    Grüße Sandra


Anmelden zum Antworten