RAS Dial gibt Fehler 610 (Ungültiger Puffer) aus



  • Hallo!

    Ich habe eine Problem mit dem RAS-Dial:
    Und zwar erhalte ich immer den DFÜ-Fehler 610 (Invalid Buffer)!
    Ich habe das Programm auf vier verschiedenen Rechnern ausgeführt, immer mit dem gleichen Ergebnis. Allerdings ist das Betriebssystem immer Win98 oder Win98SE gewesen. Dafür ist der Quelltext aber ausgelegt.
    Was tun?

    der quelltext
    ---------------------------------------------------------------------

    void __fastcall TForm1::DialUp()
    {
    HRASCONN hconid=NULL;
    RASDIALPARAMS rd;

    char* user="0123456789123456789123456789@t-online.de";
    char* pass="0123456789";
    strcpy(rd.szUserName,user);
    strcpy(rd.szPassword,pass);
    strcpy(rd.szPhoneNumber,"0");
    rd.dwSize=sizeof(RASDIALPARAMS);

    DWORD dwRet = RasDial(NULL,NULL,&rd,NULL,NULL,&hconid);

    if ( dwRet == 0 )
    return ;
    Label1->Caption=dwRet;
    return ;
    }

    ---------------------------------------------------------------------



  • was mir auffällt.. ohne davon viel zu wissen:
    wo ist die dfü??

    HRASCONN hconid=NULL;
        RASDIALPARAMS rd;
    
        char* user="";
        char* pass="internet";
        char* dfu="dfü@internet";
        rd.dwSize=sizeof(RASDIALPARAMS);
        strcpy(rd.szUserName,user);
        strcpy(rd.szPassword,pass);
        strcpy(rd.szEntryName,dfu);          //<---
        strcpy(rd.szPhoneNumber,"12345");
    
        RasDial(NULL,dfu,&rd,NULL,NULL,&hconid);
    


  • Hallo Elise!

    Das Teil hab ich nur beim Abschreiben vergessen.
    Hilft aber nix, leider.
    Trotzdem Danke!



  • Hi,

    du solltest auch szDomain von RASDIALPARAMS ausfüllen mit einem leeren String.

    strcpy(rd.szDomain, "");
    

    Glaub zwar das es nichts nützt, kannst es ja trotzmal ausprobieren. :p



  • Kannst auch mal das hier ausprobieren, das funktioniert auch bei mir, dort musst du nur den Namen der Verbindung angeben:

    #include <iostream>
    #include <windows.h>
    #include <ras.h>
    
    int main() {
        HRASCONN hRasConnection = NULL;
        BOOL bPasswordRetrieved = FALSE;
        RASDIALPARAMS rd = {0};
        rd.dwSize = sizeof(RASDIALPARAMS);
        strcpy(rd.szEntryName, "T-DSL");
        RasGetEntryDialParams(NULL, &rd, &bPasswordRetrieved);
    
        DWORD dwResult = RasDial(NULL, NULL, &rd, 0, NULL, &hRasConnection);
    
        if(dwResult == 0) {
            std::cout << "Verbindung wurde aufgebaut!" << std::endl;
        } else {
            std::cout << "Verbindung konnte nicht hergestellt werden!" << std::endl;
            std::cout << "Fehlercode: " << dwResult << std::endl;
        }
        return EXIT_SUCCESS;
    }
    


  • In den Header muss:

    #define WINVER 0x0400
    #include <ras.h>
    #include <raserror.h>
    

    Phips


Anmelden zum Antworten