Hallo. Was ist der Unterschied zwischen exportierten Funktionen und COM Interface bei einer .dll? Danke. Martin
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.
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
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.