German Andere DLL

Bobbes

Active Member
Licensed User
Hallo Leute Hallo Specci48,

Ich habe von Conrad ein USB-Relaisplatine, die Digitale und Analoge Ein-und Ausgänge. Gut und schön zum Programmieren dieser Schaltung ist auch eine DLL-Datei dabei fürdie Anweisungen der jeweiligen Ein- und Ausgängen.
Diese DLL ist für VB 2005 geschrieben, gibt es die Möglichkeit diese DLL-Datei auch im Basic4PPC umzuwandeln oder überhaupt zu benutzen.

Gruß
Bobbes
 

Heinz

Active Member
Licensed User
Wenn sie nicht für .NET geschrieben ist, hast du wohl keine
Chance. Normale DLLs funktionieren in B4PPC nicht.
 

specci48

Well-Known Member
Licensed User
Hallo Bobbes,

generell gibt es zwei Möglichkeiten:
1. Du programmierst die kompletten Funktionen einer dll in .Net nach. Da man aber i.d.R. die Source der Ursprungs-Dll nicht besitzt, gestaltet sich diese Variante relativ schwierig... ;)
2. Du programmierst eine Wrapper-Dll

Die erste Variante hat den Vorteil, dass man die Dll gleich zur direkten Verwendung für Basic4ppc schreiben kann. Es ist also nur eine Dll mit dem eigentlichen Programm zu verteilen, weil .Net selbst ja bereits auf dem Gerät installiert sein muss.
In der zweiten Varinate sind hat man nachher zwei benötigte Dlls, die Originale und den Wrapper. Der Wrapper kapselt die originalen Methodenaufrufe so, dass sie durch Basic4ppc verwendet werden können. Man programmiert z.B. eine Methode .New1 (für Basic4ppc), die ihrerseits eine Objektinstanz der originalen Dll erzeugt. Ähnliches macht man dann mit sämtlichen anderen gewünschten Methoden. Ein Beispiel hierfür ist z.B. die FMOD.dll, die zuätzlich zu den originalen FMOD Bibliothen installiert werden muss.

Um selbst eine Dll zu scheiben benötigt man Visual Studio 2003 oder 2005 (professional version!). Alternativ geht das auch mit dem kostenlosen SharpDevelop. Siehe http://www.basic4ppc.com/forum/showthread.php?t=35&highlight=library

Konkrete Hilfe für die Umsetzung kann ich allerdings nicht bieten, da ich so etwas selbst noch nicht gemacht habe. :sign0013:
Mit etwas Glück könnten Dir aber Filippo und alfcen hier ein wenig weiterhelfen, die haben beide schon Erfahrung damit.


specci48
 

Filippo

Expert
Licensed User
Hallo Bobbes,

lade doch deine DLL hoch, ich versuche dann eine neue DLL zu schreiben.

Ciao,
Filippo
 

Bobbes

Active Member
Licensed User
Hallo und guten Abend,

ihr sein wirklich die besten.

Ich habe mir das mal mit der Source-Geschichte angesehen, daß hätte ich nie hingekriegt.

Vielen Dank schon mal im voraus

Gruß Bobbs
 

Bobbes

Active Member
Licensed User
Datei vergessen.
so jetzt aber
 

Filippo

Expert
Licensed User
Hallo Bobbes,

kannst du das Programm wo diese DLL verwendet auch hoch laden?
Ich brauche es damit ich überhaupt weis was für Parameter übergeben werden und zum testen.

PS. es ist wirklich nicht einfach die richtige Funktionen zu finden, es gibt mehr als 100 Funktionen und ich habe keine Ahnung was die alles machen.:confused:

Ciao,
Filippo
 

Bobbes

Active Member
Licensed User
Hallo Filippo,
es tut mir leid, daß ich dir so viel Mühe mache:sign0013:
Die DLL ist für ein USB-Relais Board. Dieses Board hat digitale und analoge Ein- und Ausgänge.
Hier ist nur ein Demo Programm dabei, daß aber alle Funktionen beinhaltet.
´
Gruß Bobbes

P.S.: Ich sehen gerade, daß die Zip Datei 1,5 MB hat. vieleicht reicht dir ja die Manual-PDF. Sonst muß Dirs per e-Mail schicken.
 

Filippo

Expert
Licensed User
Hallo Bobbes,

es tut mir leid aber ich komme einfach nicht so richtig weiter.
Ich habe zwar eine DLL erzeugt aber die funktioniert nur auf dem Desktop und auch nicht ganz fehlerfrei.:sign0148:
Am PPC kommt nur die Fehlermeldung das die DLL "K8055D.dll" nicht gefunden wird und dann funktioniert gar nichts.
Ich habe in der Zip-Datei ein Basic4ppc-Beispiel gepackt.
Den SharpDevelop-Projekt muss ich in den zweiten Thread packen.
Du kannst jetzt selber damit spielen/testen. Ich hoffe das du damit weiter kommst.

Ciao,
Filippo

PS. weitere fragen kannst du mir über die Private Messages senden.
 

Filippo

Expert
Licensed User
Hallo Bobbes,

ich habe dir eine Private-Messages gesendet.
 
Top