Forum: PC-Programmierung DLL in VB und Delphi


von Kai (Gast)


Lesenswert?

Hi zusammen,

ich arbeite gerade an einer DLL für die Ansteuerung von diversen
Geräten über die Serielle Schnittestelle. Die Library soll später auf
meiner Seite zum donwloaden angeboten werden. Programmieren tue ich das
ganze in C++. Da ich auch Usern die mit VB oder Delphi arbeiten die
Möglichkeit geben möchte mit dieser DLL zu arbeiten müsste ich eine Art
Header Datei wie bei C erstellen. Ich habe leider keine Ahnung von VB
oder Delphi und müsste deswegen wissen wie in der jeweiligen Sprache so
eine Datei auszusehen hat. Könnt Ihr mir weiterhelfen?

von René König (Gast)


Lesenswert?

Ich kenne jetzt zwar Delphi nicht, würde in der Dll aber trotzdem ein
COM Objekt zur Verfügung stellen. Die Dinger kannst Du in eigentlich
allen Sprachen schmerzfrei verwenden. Das zahlt sich auch dann aus,
wenn Events ins Spiel kommen (es kommt etwas über die Serielle rein und
Du willst die Anwendung benachrichtigen). Die Mechanismus des Rückrufs
ist klar definiert. Und über die eingebundene TypeLib beschreibt sich
die Dll selbst, Du mußt da nicht noch extra etwas mitliefern.

Ansonsten mußt Du beachten
- VB kennt außer Byte keine vorzeichenlosen Typen
- Du darfst nur native Typen austauschen, mit z.B. einem std::string
kan VB nichts anfangen
- Funktionen mit variabler Parameterliste sind tabu
- Die Aufrufskonvention ist __stdcall
- Es dürfen keine Exceptions nach außen dringen, niemand wird diese
Fangen können

von Jens (Gast)


Lesenswert?

Warum mußt du ne Headerdatei erstellen? Es reicht doch, wenn du die DLL
zum download anbietest und außerdem eine Dokumentation mit Funktions-
und Parameterbeschreibung.

von Kai (Gast)


Lesenswert?

@Rene:
Vielen Dank. Werde das mit einem COM Objekt versuchen zu realisieren,
da ich für gewisse Funktionen auch Strukturen verwende.

@Jens:
Genau das hab ich in der Header Datei gemacht (Dokumentiert).

von Jens (Gast)


Lesenswert?

Tolle Dokumentation :)

von Kai (Gast)


Lesenswert?

Doxygen <- Sagt Dir das was?

von Niels H. (monarch)


Lesenswert?

Gibts schon! Nicht nochmal programmieren! ;)

http://www.geekhideout.com/iodll.shtml
Das isn COM-Objekt. funktioniert aus delphi, C++ und VB

von René König (Gast)


Lesenswert?

Wenn ich das richtig sehe, ist das eine Dll, die direkte Portzugriffe
erlaubt. Darum geht's hier aber nicht. Und ein COM Objekt ist da auch
nicht drin.

Davon ab: Wer so eine Dll benötigt, macht ganz gewaltig was falsch. Von
so einem Quatsch sollte man lieber die Finger lassen.

Oder hast Du einfach nur den falschen Link erwischt und meinst ganz was
anderes?

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
Noch kein Account? Hier anmelden.