C# + ImageSearchDLL.dll(autoIt) again...

11/05/2013 16:40 aloa#1
Ahoi =)

Habe ein Problem die ImageSearch.dll in ein C# Projekt einzubinden bzw. dort zu nutzen.
Gibt ja ein paar Beiträge hier aus dem Forum die da sehr Hilfreich waren, leider funktioniert es noch immer nicht.
Mit einer direkten Fehlermeldung könnte ich ja weiter kommen, diese gibt es aber leider nicht.
Das Programm wird einfach geschlossen...

Es geht um dieses Stückchen code:
Code:
...
        [DllImport("*Pfad*/ImageSearchDLL.dll")]
        public static extern string ImageSearch(int x1, int y1, int x2, int y2, string str);
        
        private void *irgendein_klick*
        {
            if (File.Exists("*Pfad*/search.jpg"))
            {
                Console.WriteLine("Suche...");
                string str = ImageSearch(0, 0, 1920, 1080, "*120 *Pfad*/search.jpg");
                ...
             }
             else
             {
                 Console.WriteLine("Bild nicht vorhanden!");
              }
        }
...
An der ImageSearch-Funktion hängt er sich aus.
Hatte auch irgendwie das Gefühl das die eigendlich nen Array zurück gibt, zumindest in Autoit, die Beispiele hier im Forum sind aber alle mit String return. (Array geht aber auch net. ^^)

Wenn ich es oben als Point deklariere und eben auch als Point return behandle, schmiert es nicht ab, aber ich bekomme werte in der Größenordnung "856856". o.O
Das zwei mal für x/y und mit jedem Programmaufruf immer unterschiedlich. @.@.

Habe auch schon andere Ansätze gesehen und rekonstruiert. Diese funktionierten zwar, sind aber bei weitem nicht so schnell wie die Autoit-Variante immer war...

Bin gerade bisschen verzweifelt. ^^
Vieleicht hat das Problem schonmal jemand gehabt?

mfg =)
11/05/2013 19:05 dready#2
Würd wohl erstmal in der Doku nachsehn. Gibt denk eine oder ?
11/05/2013 20:04 aloa#3
Nicht das ich wüsste. Hatte die in Autoit auch immer genutzt ohe Probleme. :/
11/06/2013 01:10 YatoDev#4
1. DU hast keine ahnung wie das in C# geht also -> Grundlagen
2. Machs genauso wie die autoit UDF ? Importieren und die funktion aufrufen
11/06/2013 15:31 aloa#5
zu 1. hab ich nicht gesagt. Bin ja der Meinung ich machs richtig.
zu 2. mach ich. (s.o.)

In AutoIt wäre es dann:
$res = DllCall("ImageSearchDLL.dll","str","ImageSearch"," int",$x1,"int",$y1,"int",$right,"int",$bottom,"str ",$findImage)
Funzt wunderbar. Nur in C# nicht.
Naja muss ich mich wohl nach ner alternative umsehen. ~.~
11/07/2013 18:41 aloa#6
kk ist erledigt. =)
11/07/2013 22:53 YatoDev#7
da brauch man keine alternative du rufst die dll falsch auf
11/08/2013 02:14 aloa#8
Auch wenn ich es nicht mehr benötige, würde mich doch interessieren wie es denn richtig aufgerufen wird. Kann bei mir keinen Fehler entdecken.
Denke auch das es für andere ganz praktisch wäre, die mit dem selben Problem hier landen.

Mfg