Laden...

funktionen aus .dll benutzen...

Erstellt von Barbara vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.568 Views
B
Barbara Themenstarter:in
116 Beiträge seit 2006
vor 17 Jahren
funktionen aus .dll benutzen...

Hallo...

Ich bin schon die halbe Nacht dran und krieg das nicht hin 😠
vielleicht kann mir ja jemand helfen, ich poste einfach mal die Beispiele:

Ich versuche von meiner anwendung den wert distance aus der .dll auszulesen.

Die .dll sieht so "ähnlich" aus


namespace ISXWoW
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Runtime.InteropServices;
    using ISXWoW;
    using LavishScriptAPI;
    public class ISXWoW
    {
        public ISXWoW() : base()
        {
        }
        public WoWActivePlayer Me
        {
            get
            {
                return WoWActivePlayer.GetInstance();
            }
        }
    }


  public class WoWObject : LavishScriptObject
    {
        public WoWObject(LavishScriptObject lavishObj) : base(lavishObj)
        {
        }
        public double Distance
        {
            get
            {
                return LavishScriptObject.GetMember("Distance");
            }
        }

Nun kann ich zwar mit:
ISXWoW.ISXWoW isxwow = new ISXWoW.ISXWoW();
verschiedene sachen abrufen in dem ich isxwow.me bla bla.. benutze
(funktioniert wunderbar)

wenn ich aber nun die public double Distance erreichen will hab ich es mit
ISXWoW.WoWObject wowo = new ISXWoW.WoWObject ();
double test = wowo.Distance probiert.

Dann kommt schon beim compilen:
Fehler 1 Keine Überladung für die WoWObject-Methode nimmt 0 Argumente an.

Wie komme ich nun an den wert von distance ran?

Dankeschön Barbara

M
402 Beiträge seit 2005
vor 17 Jahren

Hi!

Hast Du Dir eigentlich den Sourcecode in Deinem Posting
mal durchgelesen? Hast ihn auch verstanden? Die selben
Fragen gelten auch für die Fehlermeldung...

Hast Du ein "LavishScriptObject" - Objekt?

lg

J
3.331 Beiträge seit 2006
vor 17 Jahren

Hallo Barbara,
ich kann mich zwar M@TUK anschließen ("hast Du ... durchgelesen"), möchte Dich aber trotzdem direkt auf Deinen Fehler hinweisen.

Original von Barbara
Fehler 1 Keine Überladung für die WoWObject-Methode nimmt 0 Argumente an.

Der Compiler weist Dich also darauf hin, dass Du Deine wowo-Instanz mit einem Argument erzeugen musst, und laut Deklaration des Konstruktors brauchst Du dazu ein "LavishScriptObject". Du musst also ungefähr so arbeiten:

//  irgendwo vorher:
LavishScriptObject lavScrO = new LavishScriptObject(irgendwas);
//  und jetzt:
ISXWoW.WoWObject wowo = new ISXWoW.WoWObject(lavScrO);
double test = wowo.Distance;

Außerdem fällt mir auf, dass die Klasse WoWObject abgeleitet ist von LavishScriptObject und für den Konstruktor ein Objekt der Basisklasse verlangt. Bist Du Dir mit dieser Verschachtelung sicher?

Auf jeden Fall gesegnete Weihnachten! Jürgen

49.485 Beiträge seit 2005
vor 17 Jahren