COM Anbindung

28/07/2008 - 17:25 von Mike Wesling | Report spam
Hallo,

ich habe mal eine allgemeine Frage zur Anbindung eines Programms (z.B.
Excel, Word, ...) über die COM-Schnittstelle.

Ist es richtig, dass dann mein Programm nur mit der aktuellen Version
von Excel funktioniert, also sprich wenn ich die Version X der DLL
referenziere, dann kann ich nicht mit niedrigeren Installationen von
Excel arbeiten?

Kann ich die DLLs zur Kommunikation mit den Programmen (wie z.B. Excel)
auch so einbinden, dass sie mit meinem Programm weitergegeben werden,
oder ist das rechtlich nicht möglich?

Gibt es, ausser der etwas niedrigeren Geschwindigkeit, sonst noch
Nachteile wenn ich DLLs über COM einbinde? Zusàtzlich die Frage, gibt es
Alternativen zur Fernsteuerung/Kommunikation mit Programmen, ausser über
COM? Die Frage stellt sich ja immer, wenn man aus seinem eigenen
Programm heraus z.B. Excel-Dateien bearbeiten soll.
 

Lesen sie die antworten

#1 Frank Dzaebel
28/07/2008 - 19:08 | Warnen spam
Hallo Mike,

ich habe mal eine allgemeine Frage zur Anbindung eines Programms (z.B.
Excel, Word, ...) über die COM-Schnittstelle.

Ist es richtig, dass dann mein Programm nur mit der aktuellen Version
von Excel funktioniert, also sprich wenn ich die Version X der DLL
referenziere, dann kann ich nicht mit niedrigeren Installationen von
Excel arbeiten?



Nein, im allgemeinen referenziert man die niedrigste
zu unterstützende PIA/IA. Dann laufen die auch
für andere Office Versionen. Die IAs kannst Du auch
mit redistributieren. Spezielle COM-Funktionen haben
aber in höheren Office-Versionen eine erweiterte Signatur.
Deswegen ruft man die im allgemeinen dann latebind auf.



Gibt es, ausser der etwas niedrigeren Geschwindigkeit, sonst noch
Nachteile wenn ich DLLs über COM einbinde?



Vieles ist noch COM in Windows. Es ist aber Legacy!
Das hat einige Gründe, für die der Thread nicht reicht.
Einige Contras bzgl. COM:
Versionierungsschwàchen, Performance, OOP,
hauptsàchlich Windows implementiert, Security,
Registrierungs-Wirrwar.

Aber auch einige Vorteile, lies insgesamt etwa:

[Component Object Model - Wikipedia, the free encyclopedia]
http://en.wikipedia.org/wiki/Compon...ject_Model




Zusàtzlich die Frage, gibt es Alternativen zur Fernsteuerung/
Kommunikation mit Programmen, ausser über COM?



WCF ist die aktuelle Technologie dafür.
Andere weitere möglich.



Die Frage stellt sich ja immer, wenn man aus seinem eigenen
Programm heraus z.B. Excel-Dateien bearbeiten soll.



Das geht ggf. auch (u.a.) über "Open XML" bzw. in .NET
letztlich mit:

[System.IO.Packaging-Namespace ()]
http://msdn.microsoft.com/de-de/lib...aging.aspx
(Versions-abhàngig)

[MSDN Solve - Officeentwicklung - Open XML CodeClips - Interoperability]
http://www.microsoft.com/germany/ms...fault.mspx

oder VSTO.

[Visual Studio Tools for Office Developer Portal]
http://msdn.microsoft.com/en-us/off...05533.aspx

trotzdem noch weitere Dinge ...


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen