Universelle DLL

#841836
Lesenswert?

Hallo,

ich möchte in C++ eine DLL zur Ansteuerung eines Gerätes schreiben, die 
in möglichst vielen Programmiersprachen eingebunden werden kann.
C++, VB, Delphi, Java und LabView sollten schon funktionieren.
Nun ist die Frage welche Datentypen darf ich in den Funktionen 
verwenden? Klassen kann man ja sowieso ausschließen denke ich. Wie sieht 
es vor allem mit Strukturen oder Zeiger auf Strukturen aus? In einem 
anderen Beitrag habe ich gelesen, dass Basic kein ULONG kennt?

VDiVumfG
hahgeh
Gast #841880
Lesenswert?

hallo,

also, ich weiß nicht, ob ich dir da so wirklich weiterhelfen kann, aber 
ich konnte erfahrungen in c++ in verbindung mit vb6 machen. wenn du eine 
c++-dll in vb6 verwenden willst, brauchst du eine tlb-datei (type 
library), welche die deklarationen enthält. dann kannst du auch structs, 
enumerationen und dgl. verwenden.

gruß markus
Gast #841912
Lesenswert?

Das ist alles kein Problem. Falls Basic kein ULONG kennen sollte wäre 
das wurscht, dafür gäbe es einen "Workaround".
Es geht aber alles in VB:
http://msdn2.microsoft.com/en-us/library/9zsfkcew(VS.80).aspx

In Java verhält es sich grundsätzlich anders mit den DLLs (Native 
Interface), also schreibst du für jede Schnittstelle und für jede 
Programmiersprache ein eigenes Dings was dein Projekt wieder so ziemlich 
in Frage stellt.

Tipp: Mach es nur für VB und dann schau weiter. MS hat "COM" als 
universelle Schnittstelle konzipiert. Das ist zunächst ein Schock aber 
zum Glück gibts da einen "Wizard" der dir alles abnimmt. Hinterher ist 
deine Registry dann voll mit unnützem Zeugs und die Vorstellung davon 
ist schon grausig...
Gast #842158
Lesenswert?

Wichtig ist vorneweg die Charakteristiken der anzuflanschenden Sprachen 
zu kennen, da das interface ueber Text geht. Als Beispiel, viel gesehen 
in C :

// variablen deklaration
 double Double;
 int    Int;

kommt ganz schlecht an bei nicht case sensitiven Sprachen.
Heisst eine DLL, die solches im Header hat kann man in die Tonne werfen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren