Call to nonexistent function, trotz Vorhandensein dieser Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 08:35

Hallo.
Über Nacht funktioniert eines meiner Skripte nicht mehr. Geändert habe ich bewusst nichts, eventuell aus einem Versehen heraus.
Die angeblich fehlende Funktion befindet sich in einem separaten Skript, welches per #include eingebunden wird. Der #include-Aufruf befindet sich irgendwo am Ende des Startskripts, also nicht in der Autoexecute-Sektion, was bisher problemlos war.
Ich habe den #include-Befehl probeweise in die Autoexecute-Sektion verschoben, doch dann habe ich mit ganz anderen angeblich fehlenden Funktionen zu tun.

Ich habe meine AHK-Version geprüft, ob nicht ein automatisches Update vorliegt, doch es ist bei 1.1.26.01 geblieben.
Eine ältere Version meines Skripts läuft problemlos, und mit WinMerge habe ich keine verdächtigen Änderungen feststellen können.
Selbst einen Neustart habe ich aus Verzweiflung unternommen. Meine Fehlerbehebungskompetenzen sind ausgeschöpft.

Gibt es irgendeine Sache, die bevorzugt diesen Fehler produziert?
Ich habe ein 64bit Win7 und 64bit AHK installiert.

Sackl Zement, es warten scheinbar wieder stundenlange Try&Error-Versuche auf mich, oder was meint ihr?
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 09:17

Ohne dein Skript kann ich nur raten.
Normalerweise macht es bei einem ordentlich programmierten include keinen Unterschied ob es am Anfang oder am Ende steht und normalerweise ist das schlimmste was passiert, dass die automatische Ausführung stoppt. Zudem muss , wenn dein Problem mit mehreren Funktionsdefinitionen durch ein #include hervorgerufen wird, deine Funktion in mehreren Dateien vorhanden sein. Es kann sein, das du eine Standardlibrary hast welche deine Funktion nochmal beinhaltet die du übersiehst.
Recommends AHK Studio
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 09:55

Hi nnnik.
Ich habe nach doppelten Definitionen geschaut, aber keine gefunden. Die Funktionen sind ehemalige Labels gewesen, die keine Parameter verarbeiten. Das ganze gosub-Zeugs habe ich seinerzeit durch einfache Funktionen ersetzt. Als Beispiel:

Code: Select all

EnableButtons_10()
{
	GuiControl, Enable, Neu
	GuiControl, Enable, Aendern
}
aufgerufen durch einfache Angabe des Funktionsnamens:

Code: Select all

...
EnableButtons_10()
...
Da ich über 20 CSV-ähnliche Dateien parse, habe ich auch schon mal, zum Aufrufen, EnableButtons_%db%() verwendet.
Ich habe an einem Bereich gearbeitet, der gar keinen Einfluss haben sollte. Und jetzt ist die Funktionalität unterm Keller.
Das Skript reinstellen ist, aufgrund des enormen Umfangs und vor allem, dem Beinhalten sensibler Informationen (FTP-Zugang, etc..), vorerst nicht angedacht.
Ich werde erst mal einiges auskommentieren und weiterschauen.

Vielen Dank für Deinen Hinweis auf eventuelle doppelte Definitionen.
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Call to nonexistent function, trotz Vorhandensein dieser  Topic is solved

16 Dec 2017, 10:17

Hallo Leute.
Der Fehler lag bei mir. Von wegen, "in einem Bereich gearbeitet, der gar keinen Einfluss haben sollte".
Das Deaktivieren eines in Klammern verschachtelten Codeabschnittes mit /* ... */ hat den Ärger bereitet. Ganz genau habe ich es noch nicht untersucht, aber das Skript läuft wieder.
Beim Verschachteln von Klammern kann man scheinbar gar nicht genug aufpassen.
Danke für die Hilfsversuche.
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 15:33

Welchen Editor benutzt du um AutoHotkey code zu schreiben?
Recommends AHK Studio
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 15:45

Ich nutze Notepad++ in aktueller 64bit Version mit AHK-Sprachaufsatz, oder wie man das nennt. Funktionen, Befehle und Klammern werden hervorgehoben dargestellt.
Geschweifte Klammern können "zusammengefaltet" werden. Manchmal, wird diese "Faltung" fehlerhaft dargestellt, aber damit muss ich wohl leben.
Waren das die Informationen, nnnik, die Dich interessiert haben?
Hast Du vielleicht einen Tip für einen geeigneteren Editor?
Immer her mit der Information :D
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 16:00

Ich selber verwende AHK Studio, eine vollgültige AHK IDE ( im Endeffekt bedeutet das nur "mehr als ein einfacher Editor" ).
Es benötigt ein bisschen Einarbeitungszeit, bei der dir vielleicht jemand helfen sollte - ich bin im AHK Discord und hätte keine Probleme damit das zu machen.
https://autohotkey.com/boards/viewtopic.php?f=62&t=300

Ich kann noch Scite4AutoHotkey empfehlen. Es liefert ein paar der "basic" features die AHK Studio auch liefert und hat ein sehr intuitives Interface.
https://autohotkey.com/boards/viewtopic.php?f=61&t=62

ich weiß, dass es für Notepad++ hier im Forum irgendwo ein besseres Plugin für die AHK Sprache gibt - wahrscheinlich in der Editor Sektion.
https://autohotkey.com/boards/viewtopic ... 60&t=18960 , https://autohotkey.com/boards/viewtopic.php?f=60&t=50
Recommends AHK Studio
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 16:13

Hallo nnnik,
ich bin nicht mehr der Jüngste, weswegen ich der Nutzung eines neuen Editors zwar nicht skeptisch, aber schon mit Unwillen gegenüberstehe.
Scite4AutoHotKey habe ich mir seinerzeit schon mal angeschaut, aber ich habe in Erinnerung, daß das Programm damals schon veraltet war. AHK-Studio höre ich zum ersten Mal.
Vielen Dank für die Hinweise, nnnik. Ich schau mir alle Links mal an und gebe Bescheid. Das kann aber etwas dauern. :mrgreen:
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 16:49

Wers dann noch ganz "lean" haben will, kann auch Notepad2 benutzen, ist ein abgespecktes SciTE-derivat für welches es auch (wie eben für SciTE auch) das entsprechende AutoHotkey syntax-highlighting gibt (ohne gewähr). Ich habe diesen editor den kunden (per mail) geschickt, weil er a) winziges volumen hat, und b) gänzlich ohne installation auskam. JFTR :)

https://xhmikosr.github.io/notepad2-mod/
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 16:55

Scite4AutoHotke ist kein Editor sondern auch eine IDE welche zum Beispiel debugging in AutoHotkey vollständig unterstützt.
Soweit ich weiß gibt es Debugging nur in AHK Studio und Scite4AutoHotkey, es lässt sich nicht unbedingt mit einem einfachen Editor vergleichen, obwohl es veraltet ist.
Recommends AHK Studio
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Call to nonexistent function, trotz Vorhandensein dieser

16 Dec 2017, 18:57

AHK-Studio macht einen sehr guten Eindruck. Lieber zu viele Funktionen und Befehle, als zu wenige.
Ich hatte vor Jahren versucht mit AHK-Pad zu arbeiten, doch dieses hatte einfach zu wenige Komfortfunktionen. Und die paar speziellen Funktionen für AHK, haben diesen Nachteil nicht ausgleichen können.

AHK-Studio ist, wie Du, nnnik, sagtest, mit einem "bisschen Einarbeitungszeit" verbunden, aber schon die ersten erkennbaren Vorteile scheinen diesen Punkt mehr als aufzuwiegen.

Ein sehr wichtiges Kriterium für ältere Bediener, die einfache Skalierung der Schriftgröße, (mit CTRL+WheelUp/Down) erfüllt es.
Und für diesen speziellen Thread, hat es auch eine schöne Funktion, nämlich das automatische Anzeigen aller mit #include eingebundenen Skripte.
Das ist schon ein Lob wert, meine ich.

Danke für den Tip. :D

EDIT: Wie befürchtet, war die Umstellung zuviel für einen alten Mann. Ich habe wieder Notepad++ im Einsatz.
Das RunMe-PlugIn für Notepad++ habe ich nun auch kennengelernt und kann es wärmstens empfehlen.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 43 guests