Forum: PC-Programmierung dll Interface


von Martin (Gast)


Lesenswert?

Hallo.

Was ist der Unterschied zwischen exportierten Funktionen und COM 
Interface bei einer .dll?
Danke.


Martin

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

Ich nehme mal an, dass bei exportierten Funktionen einer DLL
die Funktionen auch dort programmiert sind. Beim COM Interface
sind nur die deklarierten Funktionen samt Parameter als Namen drin.
Das COM ist ja schon im Betriebssystem vorhanden.

von Dirk K. (merciless)


Lesenswert?

https://de.wikipedia.org/wiki/Component_Object_Model
https://docs.microsoft.com/en-us/windows/win32/com/defining-com-interfaces

COM ist eine Technik zur Interprozesskommunikation.
Man definiert Interfaces, die dann mit Hilfe von DLLs
implementiert werden. Diese DLLs müssen ganz bestimmte
Funktionen zur Verfügung stellen.

Andererseits kann eine DLL eine lose Ansammlung von
Funktionen sein, die exportiert werden. Diese könnten
genauso im Executable enthalten sein oder einer
statischen Library.

merciless

von c-hater (Gast)


Lesenswert?

Dirk K. schrieb:

> COM ist eine Technik zur Interprozesskommunikation.

Das ist nicht ganz korrekt. Es kann eine IPC-Technik sein, ist es aber 
nicht zwingend.

Sehr, sehr viele COM-Komponenten sind nicht IPC-fähig, wollten das auch 
niemals sein.

(D)COM insgesamt ist vielmehr sowas wie die berühmte Eierlegende 
Wollmilchsau. Kann alles, aber nix davon richtig gut. Letztlich ist es 
noch so ungefähr das Bestmögliche, was mit C++ machbar ist, wenn der 
Plan ist, damit ein (notfalls auch) systemübergreifendes ABI umzusetzen.

Insbesondere DCOM ist kaum wirklich beherrschbar, jedenfalls was die 
Sicherheitsaspekte betrifft. Was allerdings nicht mal unbedingt am 
Konzept liegt, sondern viel öfter an der völlig unzureichenden 
Dokumentation der auf dieser Basis realisierten Komponenten und an ihrer 
oft bescheidenen Codequalität.

Ich sage nur: Siemens...

von Klaus W. (mfgkw)


Lesenswert?

c-hater schrieb:
> Letztlich ist es noch so ungefähr das Bestmögliche, was mit C++ machbar
> ist,

Sicher, dass es nicht auch mit C++ besser ginge?

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.