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
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
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...
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.
Vielen Dank für die Antworten, die genannten Dinge werde ich dann erstmal berücksichtigen. Die fertige DLL muss ich dann sowieso in allen Systemen ausprobieren.
Hallo Günther, lege die DLL in C++ als ActiveX-Bibliothek an. Dann brauchst Du Dir um die Type-Konvertierung zwischen den unterschiedlichen Entwicklungssprachen keine Sorgen machen. Die einzelnen in der Bibliothek angelegten Interface fungieren dann wie Klassen. Gruß Frank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.