Danke für den Denkanstoß Requi.
Auch wenn es mich jetzt etwas wundert - aber der Includeverweis der ImageSearch.au3 stimmt.
Ich denke, wäre das der Fehler gewesen, hätte mich das Problem auch nicht so lange beschäftigt, da der Funktionsaufruf _ImageSearchArea(...) einen unknown function-fehler hervorrufen dürfte und nicht einfach nur FALSE bzw. 0 zurückgeben.
Das Problem war wohl vielmehr die Architektur (x86 / x64) und der Aufruf der DLL-Datei,
Abhilfe hat es geschafft die ImageSearchDLL.dll in den Hauptordner zu verschieben, alternativ kann auch der Aufruf der DLLCall-Funktion in Zeile 47 der ImageSearch.au3 in meinem Fall auf Funktionen/ImageSearchDLL.dll geändert werden.
bezüglich der doppel-includes stimme ich dir in gewisser Weise zu,
in diesem Fall jedoch soll die image.au3 jedoch die ImageSearch.au3 "ablösen",
sprich alle Bildvergleichsfunktionen, die die ImageSearch.au3 benutzen, sollen hier noch ein Grundgerüst bekommen, um den Funktionsaufruf zu erleichtern.
Hier mal ein Beispiel für eine der Funktionen:
Code:
Func _checkImage($img, $iniDescription, $tolerance, $click = 0, $speed = 10)
; $imgpath wird als "bilder" deklariert, $img soll der reine Bildname ohne Endung sein
$img_complete = $imgpath & "/" & $img & ".JPG"
; _getKoordDB liefert top,right,bottom,left als Array zurück - die Daten werden innerhalb der Funktion aus der .ini gezogen.
$koordArray = _getKoordDB($iniDescription)
$result = _ImageSearchArea($img_complete, 1, $koordArray[3], $koordArray[0], $koordArray[1], $koordArray[2], $x, $y, $tolerance)
; bei Bedarf Mausklicks und Success- oder Fail-Returnwerte
If $result = 1 Then
If $click = 1 Then
MouseClick("left", $x, $y, 1, $speed)
ElseIf $click = 2 Then
MouseClick("left", $x, $y, 2, $speed)
EndIf
Return 1
Else
Return 0
EndIf
EndFunc
@c0w
ich muss dich leider enttäuschen - auch wenn ich mich schon länger mal mit C beschäftigen wollte, habe ich bis heute noch keine einzige Zeile code in C geschrieben
Bezüglich der Includes ist es natürlich geschmachsabhängig, ob man gerne alles in einer Datei hat oder den Code "sinnvoll" auf verschiedene Dateien splittet (wobei der Sinn natürlich immer im Auge des Betrachters liegt),
ich denke es kann auf verschiedene Arten Sinn machen:
1) Allgemeine Funktionen wie die ImageSearch-UDF oder auch meine image.au3 (auch wenn diese in anderen Projekten ggf. wegen der Ordnerstruktur ggf. nicht 1:1 übernommen werden kann) - hier spart man sich einfach einiges an Arbeit bei weiteren Projekten, bei denen ähnliche Dinge benötigt werden.
2) Aufteilen verschiedener Code-Segmente, sodass an mehreren Stellen "gleichzeitig" gearbeitet werden kann, ohne ständig im Code hoch- und runterscrollen zu müssen.
3) Übersichtlicher Code, sodass leicht nachvollziehbar ist, was wann und wo gestartet wird.