Laufendes Programm beenden



  • Nun hab ich ein kleines Compiler Problem. Da ich C++Builder6 von Borland verwende musst ich deinen Code leicht verändern. Ist mir auch gelungen. Doch nun gibt es zwei probleme;

    1. Code; case WM_TIMER:
    EnumWindows(EnumProc, NULL);
    return 0;
    Problem; Undefined Symbol 'EnumProc'

    2. Code; BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam)
    {....

    Problem; Improper use of typedef 'BOOL'.

    Wenn du keine Möglichkeiten weist diese Probleme zu beheben, muss ich mich halt an das bb Forum wenden.

    dein verzweifelter

    Gen.d.Pz.Tr.Seb.

    [ Dieser Beitrag wurde am 21.06.2003 um 22:49 Uhr von Gen.d.Pz.Tr.Seb editiert. ]



  • Original erstellt von Gen.d.Pz.Tr.Seb:
    Problem; Undefined Symbol 'EnumProc'

    Hast Du auch einen Funktionsprototypen angegeben (so wie ich oben im Code)?

    Original erstellt von Gen.d.Pz.Tr.Seb:
    Problem; Improper use of typedef 'BOOL'.

    Damit kann ich nun gar nichts anfangen.... ich denke mal der Funktionsprototyp fehlt...

    Ich benutze MS Visual C++ .NET 2002... kann Dir mit Borland nicht so weiterhelfen....



  • Ich habs wirklich vergessen!!!

    Aber es hat sich nur eine Fehlermeldung geändert;
    statt Undefined Symbol 'EnumProc' kommt jetzt
    Cannot convert 'int(___stdstdcall *)(void long)' to 'int (___stdcall *()

    Der Fehler mit Bool bleibt gleich.



  • EnumWindows() benötigt die User32.lib. Die hast Du eingebunden, ja?

    Wie gesagt, ich hatte damit noch nie ein Problem...



  • Unable to open include file ...



  • Eine .lib wird nicht per #include eingebunden!

    Ich beginne extreme Mängel bei Dir im Umgang mit Deiner Entwicklungsumgebung festzustellen!

    Du solltest mal ein paar Anleitungen, HowTo's, ReadMe's, Tutorials oder so lesen...

    [ Dieser Beitrag wurde am 21.06.2003 um 23:13 Uhr von Hepi editiert. ]



  • Ich weis auch das ich sehr schlecht bin. Zumindest mit der winapi. Außerdem hab ich ehrlich gesagt noch nie mit libs gearbeitet. Bei borland läuft alles über include.

    P.S.: Ich finde deine Umschreibung meiner Dummheit sehr, naja,.. literarisch perfekt.

    [ Dieser Beitrag wurde am 21.06.2003 um 23:17 Uhr von Gen.d.Pz.Tr.Seb editiert. ]



  • sooo lib includiert. nächster fehler; unable to open file...



  • Soo, wieder etwas verbessert. Jetzt gibt es nur mehr einen Fehler;

    Code; if (_stricmp(Buffer, szPfadMitExe)==NULL)
    {

    Problem; Call to undefined function '_stricmp' //ist schon behoben.

    Nächstes;

    Code; GetModuleFileNameEx(hProcessHandle, NULL, szPathFromHandle, MAX_PATH);

    Problem; call to undefined function, die lib läst sich nicht öffnen! Wie öffne ich libs (bei mir läst sich irgendwie keine öffnen)

    [ Dieser Beitrag wurde am 22.06.2003 um 10:42 Uhr von Gen.d.Pz.Tr.Seb editiert. ]

    [ Dieser Beitrag wurde am 22.06.2003 um 10:45 Uhr von Gen.d.Pz.Tr.Seb editiert. ]



  • Original erstellt von Gen.d.Pz.Tr.Seb:
    **Problem; call to undefined function, die lib läst sich nicht öffnen! Wie öffne ich libs (bei mir läst sich irgendwie keine öffnen)
    **

    Das fragste lieber im Borland C++ Builder (VCL/CLX)-Forum...



  • vielleicht sollten manche Leute die Finger von den Tastaturen lassen und besser mit ihren Spielzeugpanzern weiterspielen?

    Wenn Du Dir mal die Mühe machen würdest, in den FAQ und in der Borlandhilfe zu blättern, könntest Du es Dir vielleicht erheblich einfacher machen. Auch gegen den Kauf entsprechender Literatur wäre nix einzuwenden.

    Sollte man eigentlich von einem Panzergeneral (3D?) erwarten können....



  • Ich hab die lib ja schon eingebunden mit
    #pragma comment(lib, "User32.lib")

    Er kanns aber trotzdem nicht öffnen.

    P.S.: Ich spiel nicht Panzergeneral, der Name kommt von woanders her.



  • hast Du Dir die Funktion mal in der MSDN Library angekuckt? Dort steht u.a. in welcher Library die Funktion enthalten ist, nämlich in der Kernel32.lib.

    Zusätzlich steht da:

    Client: Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation 4.0

    Wenn Du also "nur" Win98 oder WinME hast, wird es schwierig. Dann gibts nur die GetModuleFileName Funktion.... Warum Du das aber brauchst, weiß ich nicht. Vielleicht würde es ja auch genügen, dem entsprechenden Window einfach eine WM_QUIT Message schicken würdest!?



  • Original erstellt von Gen.d.Pz.Tr.Seb:
    Ich hab die lib ja schon eingebunden mit
    #pragma comment(lib, "User32.lib")

    Das ist eine Präprozessor-Direktive von MS Visual Studio.... das ist LOGISCH, das das nicht mit Borland funktioniert...



  • @Gen.d.Pz.Tr.Seb

    vielleicht solltest du dir erst einmal die grundlagen aneignen, bevor du dich hier auf problematiken stürzt, deren komplexitäten dein wissen scheinbar bei weitem übersteigen! hier fortwährend nachzufragen, soboald es irgendwo in deinen programmen klemmt, anstatt sich selber mal nen kopf zu machen und sich mit der thematik auseinander zu setzen, ist ne schwache leistung, ganz egal ob anfänger oder nicht!



  • Ich setze mich mit der Thematik schon seit längerem auseinander. Allerdings ist die Winapi für mich recht neu. (und ich weis auch keine tutorials oder gute hilfen dafür).

    Und Libraries hab ich auch noch nie gebraucht.
    Jetzt hab ich aber die lib includiert trotzdem sagt er mir das er GetModuleFileNameEx() nicht kennt.

    Und noch ein Problem mit hepi's code;

    EnumWindows(EnumProc, NULL);

    Cannot convert 'int (___stdcall * (closure )(void *,long)' to 'int(___stdcall *)()'

    Ach, wenn jemand wirklich empfehlenswerte hilfen, anleitungen oder tutorials weis, die nicht zu kompliziert sind sagt sie mir bitte. (Zu groß sollten sie bitte nicht sein, mit einem 56k Modem hat man da gewisse Begrenzungen)

    [ Dieser Beitrag wurde am 22.06.2003 um 21:04 Uhr von Gen.d.Pz.Tr.Seb editiert. ]



  • EnumWindows(EnumProc, NULL); // benötigt User32.lib
    GetModuleFileNameEx(); // benötigt Kernel32.lib UND WinNT/2K/XP
    


  • Poste doch mal deinen kompletten Code... also wirklich ALLES... nix weglassen!!!

    Aber bitte diesmal richtig in die Code-TAGS eingebunden....

    [ Dieser Beitrag wurde am 22.06.2003 um 22:03 Uhr von Hepi editiert. ]



  • Original erstellt von Gen.d.Pz.Tr.Seb:
    **Tut mir leid aber....

    MITTLERWEILE IST ES MIR VÖLLIG WURSCHT WIE ICH DAS PROGRAMM SCHLIEßE

    es soll wenn geht nicht zu kompliziert sein, und einfach nur funktionieren.**

    Na schön: Klick auf das X oben rechts, oder drücke Alt+F4, wenn das nicht geht, öffne den Tast-Manager und geh auf Prozesse, dann suchst du die Anwendung und drückst auf Prozess beenden. So müsste es gehen! *ggg*



  • Wie war das mit den blöden Kommentaren? Nimm dich mal selber an der Nase, nico!

    -junix


Anmelden zum Antworten