Globale deklaration?



  • Hey, Ich habe mir von der Seite http://www.ggrm.de/downloads/c_c++_codepool/dfue_verbinden.html
    einen Quellcode ausgedruckt diesen habe ich in mein Programm eingebunden. Jetzt bekomme ich die Fehlermeldung :
    error C2601: 'DialUp' : Lokale Funktionsdefinitionen sind unzulaessig
    kann mir bitte jemand sagen wie ich diese Funktion Global deklarieren kann
    Vielen Dank



  • Schau ob irgendwo eine { oder } fehlt.

    Schau mal ob Du innerhalb einer Funktion eine Funktion erstellt hast.



  • Knuddlbaer schrieb:

    Schau ob irgendwo eine { oder } fehlt.

    Schau mal ob Du innerhalb einer Funktion eine Funktion erstellt hast.

    Das ist genau mein Problem kannst du mir sagen wie ich diese Lokale Funktion Global machen kann?

    void CBLLDialerDlg::OnDialUp()
    {

    bool DialUp() <--------- hier liegt der Haken ich habe aber keine Ahnung wie ich diesen behebe

    Danke für die Antwort



  • Schreibe die Funktion ausserhalb der anderen Funktion und rufe sie in der anderen auf.
    Beispiel:

    void funcxyz(void)
    {
      cout << "xyz" << endl;
    }
    
    void rufeauf(void)
    {
      funcxyz();
    }
    


  • Problem behoben aber jetzt habe ich das nächste:
    Ich habe mir den Quellcode aus dem I-Net und ich dachte er läuft so wie er ist!

    RASDIALPARAMS rdParams ;
    : error C2065: 'RASDIALPARAMS' : nichtdeklarierter Bezeichner
    : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'rdParams'
    : error C2065: 'rdParams' : nichtdeklarierter Bezeichner

    rdParams.dwSize = sizeof(RASDIALPARAMS)
    : error C2228: Der linke Teil von '.dwSize' muss eine Klasse/Struktur/Union sein

    ???? Kann mir jemand helfen DANKE!!!



  • Dir fehlt ne Header Datei würde ich ganz spontan behaupten.



  • Kannst Du mir zeigen wie ich diese nachträglich erstelle?
    Ich habe momentan 4 Header Dateien

    Dialer.h
    Dialerdlg.h
    Resource.h
    StdAfx.h

    in welche schreibe ich die Deklaration und vor allem wie deklariere ich diese Bezeichner?

    Anbei der Quellcode auszug:

    bool CBLLDialerDlg::DialUp()

    {
    RASDIALPARAMS rdParams ;
    rdParams.dwSize = sizeof(RASDIALPARAMS);

    rdParams.szEntryName[0] = '\0';

    lstrcpy(rdParams.szPhoneNumber, '\0');

    rdParams.szCallbackNumber[0] = '\0';

    lstrcpy(rdParams.szUserName, szUserName);

    lstrcpy(rdParams.szPassword, szPassword);

    rdParams.szDomain[0] = '\0';

    HRASCONN hRasConn = NULL;

    DWORD dwRet = RasDial(NULL, NULL, &rdParams, 0L, NULL, &hRasConn);

    if(dwRet == 0){return true;}

    char szBuf[256];

    return false;
    }

    wäre echt spitze wenn Ihr mir helfen könntet Danke!



  • Laut MSDN steht RASDIALPARAMS in der ras.h. Rein theoretisch müsstest du den also einbinden.

    BTW: Was genau programmierst du da? (Dialer.h?)



  • Das wird ein Dialer für meine Firma!
    #include "ras.h"
    #include "raserror.h"

    habe ich eingebunden stimmt das so oder habe ich was falsch gemacht?
    Anscheinend frisst mein Programm diese ras.h nicht wie kann ich das überprüfen?



  • Versuche es mal mit

    #include <ras.h>
    #include <raserror.h>
    

    mit

    #include "ras.h"
    #include "raserror.h"
    

    sagst du im das die Headerdateien in dem gleichen verzeichnis liegen, was schätzungsweise nicht stimmt...



  • Habe ich gemacht läuft auch nicht ahhhhhhhhhhh gibts da noch ne andere Möglichkeit?



  • Nachgucken ob due die ras.h überhaupt hast?



  • Ich stell mich bestimmt an wie der letzte Mensch!?
    Ok aber wie oder besser wo ist diese ras.h und falls ich sie nicht habe wo bekomme ich die?

    Vielen Dank ohne euch wär ich echt aufgeschmissen!!!!!



  • Zu finden im Core SDK von Mircosoft.



  • Danke ich lade es gerade herunter ma installieren vielleicht gehts ja dann Vielen Dank nochmal ihr habt mich echt ein ganzes stück weiter gebracht!!



  • Ich habe mir jetzt die Core SDK runtergeladen und installiert könnt ihr mir bitte sagen wie ich das benutze und wo bekomme ich die ras.h her mein prog läuft immer noch nicht!!
    Danke



  • Ich finde das merkwürdig, dürfte man fragen für welche Firma du arbeitest?
    Jemand, der offensichtlich keine Ahnung von C++ hat will einen Dialer programmieren, der angeblich für eine Firma arbeitet? Ohne dich beleidigen zu wollen, aber seid wann stellen Firmen n00bs ein?



  • Ich bin AS400 Programmierer frage mich was über RPG - SQL oder CL dann kann Ich Dir helfen.
    Keine Ahnung von C++ würde ich so nicht sagen ich kann nur mit diesem Scheiß Visual Studio nicht umgehen bin Neuling!
    Und dieser "Dialer" ist ein ganz simples Prog das eine I-Net verbindung aufbaut eine Textdatei überträgt und diese Verbindung wieder schließt. Denn es gibt leider Ausendienstler denen man das 20 mal erkären kann eine DFÜ verbindung einzurichten und das klappt trozdem nicht

    Ausserdem ich dachte in dem Forum kann man Fragen stellen ohne sich vor Wildfremden Leuten rechtfertigen zu müssen @ Detektiv
    Ich bin mir sicher Du hast auch mal klein Angefangen! oder?

    Allen anderern Vielen Dank für die Hilfe!!!!!!!!



  • MarcusL. schrieb:

    Ich stell mich bestimmt an wie der letzte Mensch!?

    Das wäre auch meine erste Vermutung gewesen. 🙂

    MarcusL. schrieb:

    Ausserdem ich dachte in dem Forum kann man Fragen stellen ohne sich vor Wildfremden Leuten rechtfertigen zu müssen @ Detektiv

    Das ist schon richtig. Nur solltest du auch verstehen, dass wir nicht dazu da sind, um irgendeinem Programmier-Kiddie zu helfen, irgendwelche schädlichen Programme zu entwickeln.

    Ausserdem glaube ich, dass du im WinAPI Forum besser aufgeheben bist.

    Naja, zu deinem Problem. MS stellt ein SDK zur Verfügung ( ➡ Platform SDK), welches ua auch ras.h enthält. Core SDK könnte ein Teil davon sein, das kann ich dir aber nicht genau sagen. Das Platform SDK kannst du dir kostenlos bei MS runterladen. Sollte das von dir benötigte schon im Core SDK enthalten sein, entfällt dieser Schritt. Danach musst du in deiner IDE die Include- und Lib-Verzeichnisse um die des SDK's erweitern. Danach sollte es eigentlich auch funktionieren.



  • Schädliche Programme?
    Sorry aber mein Dialer (wenn man das überhaupt Dialer nennen kann?) wird von einer Firma benutzt deren Ausendienstler eine Auftragsbestätigung in die Firma schicken müssen!. Dazu wird eben das Modem angesprochen eine bestimmte Nummer zu wählen und dann wird diese TXT-File verschickt.

    Noch ne Frage: Was soll ich den machen ausser in ein Forum zu gehen und dort meine Frage zu stellen? Wenn ich nicht alleine weiter komme dann ist doch das die einzigste möglichkeit - oder?


Anmelden zum Antworten