Deutsch
Forum

AutoItX3.dll - PixelSearch Funktionsaufruf

 

Christian
Schneider
Hallo,

ich stehe leider mal wieder auf Kriegsfuß mit einer .dll. Diesmal ist es die AutoItX3.dll.
Ich möchte die Funktion AU3_PixelSearch aufrufen.
KompilierenMarkierenSeparieren
CLS
Declare autodll&
autodll&=UseDll(AutoItX3.dll)
importFunc(autodll&,AU3_PixelSearch,PixelSearch)
Pixelsearch(???????????)
FreeDLL autodll&
Waitkey

Wie müsste jetzt der entsprechende Aufruf aussehen? Die Doku sagt:

AU3_API void WINAPI AU3_PixelSearch(long nLeft, long nTop, long nRight, long nBottom, long nCol, /*default 0*/long nVar, /*default 1*/long nStep, LPPOINT pPointResult);


Ich komme einfach nicht weiter. Dll und Hilfe hängen am Beitrag an.

Gruß Christian

186 kB
Hochgeladen:23.02.2009
Ladeanzahl223
Herunterladen
306 kB
Hochgeladen:23.02.2009
Ladeanzahl173
Herunterladen
 
XProfan 11| Vista(64) SP2
23.02.2009  
 



Einfachst
KompilierenMarkierenSeparieren - wenn das nicht klappen sollte bitte melden.

Lustig - solch Funktion wollte ich erst neulig in eine DLL packen für XProfan - vlt. hole ich das nach.
 
23.02.2009  
 




Christian
Schneider
Ok, ich hätte mein Problem vielleicht etwas genauer beschreiben sollen

Vorweg zum kurzen Verständnis: Das von mir verwendete ImportFunc hat doch vom Prinzip her die gleiche Funktion wie Externals (abgesehen davon das die Funktion nicht direkt aufgerufen wird) oder?

Der Part der eben fehlte:

Wenn ich die Funktion aufrufe, z.B. wie jetzt getestet mit
KompilierenMarkierenSeparieren
external(pfad$,AU3_PixelSearch,100,100,400,400)
verabschiedet sich der Interpreter (AccessViolation xy...).
 
XProfan 11| Vista(64) SP2
23.02.2009  
 



Die Parameter in Typ und Anzahl müssen genau eingehalten werden - glaube das ist hier nicht der Fall was den Absturz erklären könnte.
 
23.02.2009  
 




Christian
Schneider
Hast Recht, hab einen Parameter zu wenig verwendet. Ich dachte die letzten 3 wären optional. Allerdings bleibt das Ergebnis das Gleiche.
KompilierenMarkierenSeparieren
Ich wüsste im Moment leider auch nicht was ich sinnvoll verändern könnte.
 
XProfan 11| Vista(64) SP2
23.02.2009  
 



AU3_PixelSearch(long nLeft, long nTop, long nRight, long nBottom, long nCol, long nVar, long nStep, LPPOINT pPointResult)

Ich zähle 8 Parameter!

(Bei derart nativen Aufrufen gibt es windows-technisch bedingt optionale Parameter nicht.)
 
23.02.2009  
 




Christian
Schneider
Ok, mit Rückgabewert (der ja auch ganz sinnvoll ist ;) ) sind es dann 8.
Ich werd dann damit nochmal ein wenig rumprobieren.
 
XProfan 11| Vista(64) SP2
23.02.2009  
 




Christian
Schneider
Bin immer noch so weit wie vorher. Gehe mittlerweile davon aus das es am Rückgabewert liegt (LPPOINT pPointResult -> Returns a 2 element array containing the pixels coordinates)

Ist das jetzt ein Pointer auf eine strukturierte Bereichsvariable, ein Array oder auf irgendwas völig anderes mit dem ich überhaupt nicht rechne?
 
XProfan 11| Vista(64) SP2
23.02.2009  
 



Vielleicht die Adresse eines x*y*Byte grossen Speichers, z.B. zu reservieren per
KompilierenMarkierenSeparieren
declare speich#
dim speich#,50*50
AU3_PixelSearch(0,0,49,49,$0000FF,1,1,speich#)
 
23.02.2009  
 




Christian
Schneider
Mir gehen langsam endgültig die Ideen aus. Habe so ziemlich alles versucht. Sämtliche Variablentypen, als Pointer, CDECL...
Bin für jeden Tipp dankbar. Codes zum posten hab ich leider keine, bzw. ich wüsste nicht welche ich dafür nehmen sollte. Andere Funktionen der dll habe ich auch getestet, diese laufen. Als Fehlerquelle vermute ich nach wie vor den Rückgabewert (weil sich die Funktion lediglich dadurch von den bei mir lauffähigen unterscheidet).
 
XProfan 11| Vista(64) SP2
24.02.2009  
 




Jörg
Sellmeyer
Ich würde es ja so vermuten aber ein kurzer Test zeigt, daß auch das knallt:
KompilierenMarkierenSeparieren
Cls
Declare Test#
Dim Test#,8
Var a& = Test#
Print External(AutoItX3.dll,AU3_PixelSearch,4, 4, 4, 4, $0000FF, 0, 1, a&)
oder noch wahrscheinlicher
Print External(AutoItX3.dll,AU3_PixelSearch,4, 4, 4, 4, $0000FF, 0, 1, Addr(a&))
Dispose Test#
WaitInput
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.02.2009  
 



Vlt. die DLL zunächst per UseDLL einladen.
 
24.02.2009  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

21.976 Betrachtungen

Unbenanntvor 0 min.
Normann Strübli09.06.2020
Walter31.12.2018
Peter Max Müller19.12.2017
E.T.12.12.2015
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie