Ich bin hauptsächlich ein C++ Typ. Da C++ keine offizielle ABI enthält, verwende ich immer einen COM-ähnlichen Ansatz für Komponentendesigns, die mehr als einen Compiler unterstützen. KürzlichObjective-C stabil ABI
stieß ich auf die Frage, ob Objective-C als Ersatz für die COM-ähnlichen Ansatz wäre. Damit Objective-C ein Ersatz ist, benötigt man natürlich eine stabile ABI, daher würde ich gerne wissen, ob eine stabile ABI für Objective-C existiert (auf allen wichtigen Betriebssystemen [OSX, GNU/Linux, Windows]) und wie einfach Es wäre Objective-C (++) als "Klebstoff" zwischen Komponenten, die von verschiedenen Compilern erstellt wurden.
EDIT: Als Nikolai Ruhe eine kurze Beschreibung von COM darauf hingewiesen, sehr nützlich sein. COM ist im Wesentlichen ein "binärer Standard", der das Mischen von Binärdateien verschiedener Compiler (und in einer Vielzahl von Sprachen) ermöglicht. Das Vehikel von COM sind Schnittstellen, die Methoden definieren (die auf die virtuellen Funktionen von C++ abbilden). Komponenten implementieren mindestens eine Schnittstelle und werden als DLLs verteilt. Sie können sich irgendwo auf dem System befinden (die Position wird in der Registry angegeben) und können von jedem COM-Client über die ID der von ihnen implementierten Schnittstelle geladen werden.
Sie sprechen offensichtlich Objective-C-Leute an. Es wäre sicherlich hilfreich, wenn Sie den "COM-like approach" ein wenig beschreiben würden. Ich habe keine Ahnung, was das ist. –
@NikolaiRuhe danke, ich habe gerade das, hoffe, es wird erklärt, wie COM (auf einer grundlegenden Ebene) arbeitet – MFH
Im Moment habe ich meine „eigene Version von COM“ - auch sans für Sprachen zu unterstützen, die nicht C++ ^^ ich vielleicht dachte nur etwas wie Objective-C++ wäre ein eleganterer Weg (da alles wie COM scheinbar unelegant zu sein scheint [obwohl ich das über Wrapper in meiner aktuellen Implementierung ausgeblendet habe]). Es ist nicht so, als ob mein aktuelles Design nicht benutzbar wäre - ich erzeuge tatsächlich eine ganze Menge von Dateien [VTABLES, Wrapper, ...] aus einer einfachen Sprache, aber das fügt immer noch den Overhead hinzu, zwei Programme anstelle nur des Compilers zu haben. .. – MFH