Vortrag Grundlagen der COM-Programmierung
|
|
|
- Sarah Holzmann
- vor 10 Jahren
- Abrufe
Transkript
1 Schulungsdokument Vortrag Grundlagen der COM-Programmierung Konfigurationsidentifizierung (KI): CTB Funktion Name Organisationseinheit Erstellung Mario Becker BDS
2 Inhalt ➀ Funktionsweise von COM ➁ Interfaces ➂ Registrierung von COM-Komponenten ➃ Marshalling ➄ Erzeugen und Verwenden von COM-Objekten ➅ Automation ➆ Duale Schnittstellen ➇ Interface Definition Language (IDL) ➈ Type Library ➉ Verschiedenes ➊ Anwendungsbeispiele Voraussetzungen Advanced C++ (RTTI, Templates) Windows-Programmierung mit Visual C++ Zielsetzung Grundlagen der COM-Programmierung unter Verwendung des Win32 COM APIs. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 1
3 Terminologie COM Spezifikation, die das binäre Layout von Software-Komponenten, bzw. Objekten, festlegt und angibt, wie diese Komponenten untereinander kommunizieren können. DCOM (Distributed COM): Erweiterung des COM-Mechanismus über Netzwerkgrenzen hinweg. COM-Server DLL- oder EXE-Datei, die ein oder mehrere COM-Klassen (CoClass) enthalten kann. Beispiele für COM-Server: MS-Word oder Excel. COM-Klassen Deklarationen von COM-Objekten in einem COM-Server, die noch nicht instanziiert wurden. Eine COM-Klasse kann ein oder mehrere Interfaces besitzen, wobei jedes Interface ein oder mehrere Funktionen deklariert. Interface besteht aus einer Gruppe von Zeigern, die ihrerseits auf Funktionen zeigen. COM-Interfaces sind als vtables realisiert, die sich wie virtuelle Funktionen in C++ verhalten. COM-Objekt Instanziierung einer COM-Klasse und belegt wie ein C++-Objekt Speicher. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 2
4 Ausprägungsformen von COM-Servern in-process: Server wird als DLL implementiert und wird vom Client bei Bedarf geladen. Er wird im Adressraum des Clients ausgeführt. out-of-process: Server wird als EXE-Datei implementiert und in seinem eigenen Adressraum ausgeführt. remote service: Server steht über ein Netzwerk - ein LAN, WAN oder Internet - als Service zur Vefügung. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 3
5 Interfaces COM-Objekte kommunizieren nur über Interfaces mit anderen Objekten, bzw. Clients. Ein Interface ist eine Tabelle von Funktionszeigern, die ihrerseits auf die vom Objekt zu implementierenden Funktionen zeigen. Die Zeigertabelle wird auch als vtable bezeichnet. Implementierung von Interfaces pfunca pfuncb pfuncc pfunca() pfuncb() pfuncc() Interface Pointer vtable Objekt mit Memberfunktionen Verwendung einer vtable ist vorgeschrieben. vtable muß ab Offset 0 im COM-Objekt liegen (Binärkompatibilität). Interface-Pointer: Zeiger auf einen Speicherbereich, der unter Win32 in den ersten 4 Bytes einen Pointer auf eine vtable enthält CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 4
6 Visuelle Darstellung von COM-Schnittstellen UML-Notation: Unified Modelling Language. Namen von Interfaces beginnen mit I. Beispiel IUnbekannt IDispatch IMyInterface MyComObject CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 5
7 Arten von COM-Schnittstellen Custom Interfaces: reine vtable-schnittstellen (abgeleitet von IUnknown), Automation Interfaces: reine Dispatch-Schnittstellen - oder dispinterfaces (abgeleitet von IDispatch). Duale Schnittstellen (auch abgeleitet von IDispatch), Hybrid aus vtable- und Dispatch-Interfaces. Anmerkung: Mit Visual Basic können nur duale Schnittstellen definiert werden, auch wenn extern definierte, reine vtable- oder Dispatch-Interfaces benutzt werden können. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 6
8 Versionierung Objects as Contracts: eineveröffentliche Schnittstelle darf nicht mehr nachträglich verändert werden. Die Implementierung des Interface kann sich aber sehr wohl ändern. Bei Änderungen oder Erweiterungen: => neues Interface schaffen. Beispiel: Erweiterung eines Interfaces IOldInterface pa pb pc INewInterface pb pc pone ptwo Objects still maintain functions for old and new interfaces A() B() C() One() Two() CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 7
9 Unique Identifiers (UUIDs) Festlegung eindeutiger Namen für COM-Objekte, Interfaces, usw. Format: 128-Bit-Zahl, (normalerweise als Strings von Hex-Zahlen), z.b.: {000209FE C } Open Group Algorithmus zur Erzeugung von UUIDs. Aktuelles Datum und Uhrzeit Netzwerkadresse des Computers Taktzähler. Arten von UUIDs GUID: Globally Unique ID, bezeichnet UUID aus der COM-Welt. CLSID: Class ID,für Klassen-Objekte. IID: Interface-ID, für Schnittstellen. REFIID: Referenz-IID, C++-Typ: Referenz auf eine IID. appid: für Anwendungen. catid: für Kategorien (siehe HKEY_CLASSES_ROOT\Component Categories). progid: UUID in menschenlesbarer Form, Namenskollisionen möglich. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 8
10 Erzeugung von UUIDs GUIDGEN: Visual C++ Tool, Kopiert UUID in Clipboard. uuidgen: Kommandozeilentool unter DOS. programmatische Erzeugung: CoCreateGUID (ruft UuidCreate auf). Beispiel für eine progid {000209FE C }: CLSID des Automation-Objekts von Word95. Zugehörige progid: word.basic. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 9
11 IUnknown COM-Interface, dessen Funktionen von jedem COM-Objekt implementiert werden müssen. Definition (C++) class IUnknown { public: virtual HRESULT QueryInterface(REFIID riid, LPVOID FAR* ppv) = 0; virtual ULONG AddRef() = 0; virtual ULONG Release() = 0; }; QueryInterface Parameter REFIID: Referenz auf eine IID. LPVOID FAR*: 32-Bit void* Zeiger. Rückgabewert HRESULT: 32-Bit-Wert, Status der COM-Operation, z.b. S OK. Test von HRESULT: Makros FAILED und SUCCEEDED. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 10
12 AddRef und Release Synopsis ULONG AddRef() ULONG Release() Verwaltung der Lebensdauer von COM-Objekten. Referenzzähler-Mechanismus. Garbage Collection. Regeln Zeigerzuweisung auf das Interface eines COM-Objektes: explizites AddRef. QueryInterface ruft AddRef automatisch auf. Jedes Interfaces muß AddRef und Release implementieren. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 11
13 Registrierung von COM-Komponenten HKEY_CLASSES_ROOT Enthält die GUIDs für COM (wird auf HKEY_LOCAL_MACHINE\Software\Classes abgebildet). COM-Informationen in der Registry HKEY_CLASSES_ROOT file extensions.bmp.doc.xls progids der Server- Anwendungen progids Paint.Picture CLSID CLSID Liste aller CLSIDs CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 12
14 Server Registrierung Jeder Server registriert sich selbst in der Registry, indem er seine CLSID seinem eigenen Dateinamen zuordnet. COM-Komponente werden beim Übersetzen mit Visual C++ automatisch registriert. EXE-Server: -RegServer / -UnRegServer. DLL-Server: exportiert DllRegisterServer und DllUnregisterServer. Programme regsvr32 dllservername regsvr32 /u dllservername CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 13
15 Marshalling 1.Fall: DLL-Server (in-process) Client Process Server DLL Client Server Direkte Aufrufe von Interface-Funktionen. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 14
16 2.Fall: EXE-Server (out-of-process) Client Process Server Process Proxy Stub Client DLL Proxy DLL Stub Server Marshalling zur Parameterübergabe. Proxy: Läuft im Adressraum des Clients, Abbild des Interfaces. Stub: auf Serverseite, Unmarshalling. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 15
17 Erzeugen von COM-Objekten Win32 COM API Funktion CoCreateInstance. Beispiel IUnknown* punk; HRESULT hr = CoCreateInstance ( CLSID_MySrv, // GUID NULL, // Res. for aggr. CLSCTX_SERVER, // type: server IID_UNKNOWN, // interf. pointer (void **)&punk); // Store pointer Weiterverwendung des Interface-Pointers IDispatch *pdisp; hr = punk->queryinterface(iid_dispatch, reinterpret_cast<void**>(&pdisp)); if(failed(hr)) { AfxMessageBox("QueryInterface on IDispatch failed"); } CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 16
18 Wiederverwendung von Komponenten Das verwendete Objekt: inneres Objekt. Das Objekt, das Gebrauch von einem anderen macht: äußeres Objekt. Containment/Delegation Die Methoden des äußeren Objekts werden durch Methodenaufrufe des inneren Objekts realisiert. Aggregation Spezialfall von Containment. Kein Implementierungsoverhead wie beim Containment. vtable-mechanismus. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 17
19 Class Factories Jedes COM-Objekt wird duch eine sog. Class Factory erzeugt. IClassFactory class IClassFactory : public IUnknown { virtual HRESULT CreateInstance(LPUNKNOWN punk, REFIID riid, void ** ppv) = 0; virtual HRESULT LockServer(BOOL flock) = 0; } IClassFactory2 Lizensierungsfunktionen (ActiveX). IClassFactory2 IClassFactory CreateInstance() LockServer() CreateInstance() LockServer() GetLicInfo() RequestLicKey() CreateInstanceLic() CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 18
20 Automation Fernsteuerung von COM-Objekten durch Clients durch IDispatch-Interface. IDispatch interface IUnknown : public IUnknown { public: virtual HRESULT GetTypeInfoCount (UINT* pctinfo) =0; virtual HRESULT GetTypeInfo (UINT itinfo, LCID lcid, ITypeInfo** pptinfo) = 0; virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames (REFIID riid, LPOLESTR* rgsznames, UINT cnames, LCID lcid, DISPID* rgdispid) = 0; } virtual HRESULT Invoke (DISPID dispidmember, REFIID riid, LCID lcid, WORD wflags, DISPPARAMS pdispparams, VARIANT* pvarresult, EXCEPINFO* pexcepinfo, UINT* puargerr) = 0; CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 19
21 Varianten Übertragung von Daten in einem sprach- und maschinenunabhängigen Format. Wird für Automation verwendet. Struktur, die einen Typenbezeichner und eine Union enthält. Die Union enthält zulässigen Standard Datentypen als Wert. Warum Varianten? Ziel: Automation-Objekt über IDispatch-Interface aufrufen. Wenn es kein Headerfile gibt: // compile error ISomeInterface->SomeFunctionNotDeclaredOnClient(); Lösung: Funktion in String verpacken IDispatch->RemoteInvokeMethodByName( "SomeFunctionNotDeclaredOnClient"); Frage: wie werden die Argumente übergeben? Automation verwendet spezielle Datentypen (Automation Types) union AnyOfThese { int ival; float fval; char cval; // and every other automation type // that late binding supports } CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 20
22 Diskriminator zur Typangabe: enum types { VT_INT, VT_FLOAT, VT_CHAR }; struct Variant { enum types discriminator; } union AnyOfThese { int ival; float fval; char cval; // and every other automation type // that late binding supports } Zugriffsfunktion Variant args[2]; Variant retval; args[0].discriminator = VT_INT; args[0].ival = 2; args[1].discriminator = VT_INT; args[1].ival = 3; IDispatch->RemoteInvoke ("Add", args, &retval); Und fertig ist das Late Binding. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 21
23 Duale Schnittstellen Late Binding Zugriff auf COM-Objekte über IDispatch zur Laufzeit. Verwendet Automation Types. I.d.R. keine Headerfiles oder Type Library vorhanden. Early Binding Custom Interface: Referenzen auf COM-Objekt werden zur Compilezeit aufglöst. bedingt Proxy DLL. Keine Einschränkungen bzgl. der Typen. Schneller als Late Binding. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 22
24 Dual Interfaces Schnittstellen, die sowohl Late, als auch Early Binding unterstützen. Dispatch Interface (Invoke) oder direkte Benutzung der vtable. Schneller als Dispatch-Interfaces, langsamer als Custom Interfaces unterstützt die Entwicklung Sprachunabhängiger Server. Faustregel Für jede COM-Klasse, die Non-Automation Types verwendet, muß eine Proxy-DLL für die Client-Anwendung ausgeliefert werden. (Proxy-DLL = Stellvertreter für die COM-Klasse auf der Client-Seite). CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 23
25 IDL Sprachunabhängige Beschreibung von Schnittstellen. Übersetzung mit MIDL-Compiler => Type Library (.tlb-datei). MIDL new.tlb Typbibliothek (library) new.idl MIDL dlldata.c new.h COM Interface Schlüsselwort [object] new_i.c new_p.c RPC Interface new_c.c new_s.c new.h Assistenten Die MFC- und ATL-Assistenten generieren die IDL für den Proxy, (genauso wie den Stub und die Type Library). CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 24
26 Type Library Beschreibt alle Klassen, Methoden (und Argumente) eines COM-Servers. Sprachneutrales, binäres Headerfile (enthält keinen Programmcode). Late Binding und Early Binding. Kann von jeder COM-fähigen Sprache verwendet werden. Unterstützt Sprachunabhängigkeit. Quelltext (.idl oder.odl) => MIDL => Kompilat (.tlb). #import Anweisung: Visual C CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 25
27 Type Lib Viewer Anzeige von Typ-Bibliotheken. Aufruf: Menü File/View Type Lib im OLE/COM Object Viewer Beispiel CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 26
28 #import Makro Generierung von Headerdateien zur Auflösung von Early Binding Referenzen. Lesen:.tlb => #import => Header.tli und.tlh Beispiel Visual C++ Datei: TLB-Datei einlesen #import "sometypelib" no_namespace named_guids Optionale Argumente nonamespace: Klassen nicht in einem eigenen Namensraum erzeugen. named guids: Erzeugung menschenlesbarer Namen für GUIDs. EXE und DLLs #import kann auch TLB aus EXE oder DLL lesen. Beispiel Visual C++ Datei: DLL-Datei einlesen #import "myactivexserver" CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 27
29 Was #import sonst noch kann... Erweiterte Benutzungsform für Methoden Normalerweise: RV aller Interface-Methoden ist HRESULT [id(1), helpstring("method Add")] HRESULT Add([in] int x, [in] int y, [out, retval] int * r); Sonderbedeutung von retval: iresult = Add (1, 2); Raw Funktions #import generiert Raw Functions, so daß Methoden auch mit Ausgabeparametern (anstelle von RVs) verwendet werden können. Beispiel int iresult; //this also works pcalc->raw_add(1,2,&iresult); cout<< "Raw Addition is:" << iresult <<endl; CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 28
30 Zeichensätze Zeichensätze für Win32- und COM-Programmierer Unicode: 16-Bit ANSI: 8-Bit Makros und Funktionen CHAR: für ANSI-Zeichen. WCHAR: für UNICODE-Zeichen. TCHAR, T und LPTSTR: für Festlegung des Zeichensatztyps zur Compilierzeit. OLECHAR und L: für Unicode-Strings. CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 29
31 Beispiele TCHAR und T STDMETHODIMP CComSrvObj::Message() { TCHAR txt[100]; wsprintf(txt, _T("Pong %x"), reinterpret_cast<const char*> (static_cast<iinterface1*>(this))); MessageBox(NULL, txt, _T("DllServer"), MB_OK); return S_OK; } OLECHAR und L OLECHAR *name = L"add"; idsp->getidsofnames (IID_NULL, &name, 1, GetUserDefaultLCID(), &dispid); idsp->invoke (dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, &dp, &result, 0, 0); cout << "Addition is:" << result.lval <<endl; CT-B KI: CTB Ausg.: 1 / Vers.: 1 Datum: 08. März 1999 Seite: 30
Einführung in COM. 04.04.2006 Seite 1
Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006
Software Reuse Sommer 2004. 5. OLE, DCOM und COM Die frühen. Komponentenmodelle der Firma Microsoft. Object Linking and Embedding (Compound Documents)
5. OLE, DCOM und COM Die frühen Komponentenmodelle der Firma Microsoft Peter Sturm Universität Trier COM+ Entwicklungsschritte Object Linking and Embedding (Compound Documents) In-Place Activation Clipboard
Application Frameworks and Componentware Wintersemester 2002/03. COM+ Entwicklungsschritte. In-Place Activation OSF DCE RPC 1992 DCOM 1996
OLE, DCOM und COM Die frühen Komponentenmodelle der Firma Microsoft COM+ Entwicklungsschritte Object Linking and Embedding (Compound Documents) In-Place Activation Clipboard 1987 OLE 1992 OLE 2 1993 MS
Office in Java. 2. Info-Point Urs Frei
Office in Java 2. Info-Point Urs Frei Problemstellung: Zwei Motivationen Daten direkt im richtigen Format Excel nicht über Zwischenformat csv In Word Bereichte erstellen Office fernsteuern Rechtschreibeprüfung
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Inhalt. 1. Motivation. 2. COM Architektur. 3. COM Implementierung. 4. Zusammenhang zu ATL. 5. Beispiel COM Client/ Server. 6..
Inhalt 1. Motivation 2. COM Architektur IUnkown 3. COM Implementierung 4. Zusammenhang zu ATL 5. Beispiel COM Client/ Server 6..NET/ COM Interop ISum IMultiply Calculator IClassFactory 7. Beispiel.NET
Themen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
Remote Method Invocation
Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem
Szenario 3: Service mit erweiterter Schnittstelle
2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich
Java RMI Remote Method Invocation
Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert
Große Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 [email protected] http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
xgu 2.0 Installationsanleitung Installationsanleitung Excel Add-In zu ASTAG GU Kalkulationsgrundlage Bern, 19. August 2014 Version: 01.
Installationsanleitung xgu 2.0 Installationsanleitung Excel Add-In zu ASTAG GU Kalkulationsgrundlage Bern, 19. August 2014 Version: 01.04 Xplanis AG Zentweg 9 CH-3006 Bern Fon +41 (0)31 359 24 54 Fax +41
Seminar Komponentenorientierte Softwareentwicklung
Seminar Komponentenorientierte Softwareentwicklung Für : Herr Prof. Dr. Thiesing COM (DCOM, COM+) Von: Nurhan Duman MatrNr: 7037779 1 Inhaltsangabe Historie von COM/DCOM/COM+...S.3 Was ist COM (allgemeine
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
Javakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
IPETRONIK TESTdrive SDK V02.00
TESTdrive SDK V02.00 Übersicht Kundenspezifische Erweiterungen möglich Unabhängige Entwicklungen von TESTdrive-Kernsystem (Releases) Eigenständige Erweiterungen durch den Kunden selbst Nutzung von bestehenden
Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15
Historical Viewer zu ETC5000 Benutzerhandbuch 312/15 Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Dokumentation...3 2 Installation... 3 3 Exportieren der Logdatei aus dem ETC 5000... 3 4 Anlegen eines
Java: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen
1. Einführung Über die Tabellen-Auswertungen können Sie eigene Auswertungen nach Ihren Wünschen erstellen. Diese Auswertungen werden immer anhand der aktuellen Daten aus orgamax ermittelt, Sie können also
Factory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
ATHOS Benutzertreffen
ATHOS Benutzertreffen Report of the Lab Glashütten, 10. November 2010 HighQSoft GmbH, Karst Schaap [email protected] www.highqsoft.de / www.highqsoft.com 10 November 2010-1 Themen Aktueller Stand
Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.
WinCC UniAddIn Motivation Add-ins für WinCC können in VBA und VB6 programmiert werden. Andere Entwicklungsumgebungen werden nicht standardmäßig unterstützt. Die Entwicklung in VBA hat den Nachteil, dass
COM-Add-Ins installieren
COM-Add-Ins installieren COM-Add-Ins sind Zusatzkomponenten, mit denen man Office-Anwendungen und die VBA-Entwicklungsumgebung erweitern kann. Programmiert werden sie grundsätzlich als ActiveX-Komponenten
Prinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
Wiederholung: Beginn
B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben
1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005
Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger [email protected] Inhalt 1. Einführung... 3 2.
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
Java Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
Anleitung zum Prüfen von WebDAV
Brainloop Secure Dataroom Version 8.20 Copyright Brainloop AG, 2004-2014. Alle Rechte vorbehalten. Sämtliche verwendeten Markennamen und Markenzeichen sind Eigentum der jeweiligen Markeninhaber. Inhaltsverzeichnis
P-touch Transfer Manager verwenden
P-touch Transfer Manager verwenden Version 0 GER Einführung Wichtiger Hinweis Der Inhalt dieses Dokuments sowie die Spezifikationen des Produkts können jederzeit ohne vorherige Ankündigung geändert werden.
Java und XML 2. Java und XML
Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003
Arbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
Typumwandlungen bei Referenztypen
Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
Erstellen eines Office-COM-Add-In mit Visual Basic 2005 Express Edition
Erstellen eines Office-COM-Add-In mit Visual Basic 2005 Express Edition Neues Projekt (Klassenbibliothek) erzeugen Als Projektbezeichnung wählte ich BeispielComAddIn. Add-In-Starter-Klasse erstellen Die
Testen mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
Alltagsnotizen eines Softwareentwicklers
Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,
KAPITEL. Ernst Pfannenschmidt und Paul Watzlaw
KAPITEL 8 Ernst Pfannenschmidt und Paul Watzlaw Die Active Template Library Microsofts Komponentenmodell hat eine recht lange Vorgeschichte, die nicht nur durch den Wandel der Begriffe VBX, OCX, ActiveX
Delegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung
Marko Apfel, Team Entwicklung Agenda Was ist COM Was sind die ArcObjects Warum Delphi mit ArcObjects Wie greift man auf die ArcObjects mit Delphi zu Wo gibt es Informationen 2 Agenda Was ist COM Was sind
Elexis-BlueEvidence-Connector
Elexis-BlueEvidence-Connector Gerry Weirich 26. Oktober 2012 1 Einführung Dieses Plugin dient dazu, den Status Hausarztpatient zwischen der BlueEvidence- Anwendung und Elexis abzugleichen. Das Plugin markiert
Assoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
Das Component Object Model (COM)
Einführung in das Component Object Model unter Microsoft Windows Das Component Object Model (COM) Michael Puff [email protected] 2010-03-26 Die erste Version dieses Dokumentes wurde im Rahmen einer
Der lokale und verteilte Fall
Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf
Objektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
Step by Step Softwareverteilung unter Novell. von Christian Bartl
Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen
C# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens
11.1 Indirektes Binden (3) Objektadapterkonfiguration Name wird bei Erzeugung vergeben wird genutzt u.a. für Property-Zugriffe Adapter-ID wird über Property konfiguriert Beispiel: MyAdapter.AdapterID=MyAdapter
Programmieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
Einführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
Einführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
Kommandozeilenparameter der SelectLine Applikationen
Kommandozeilenparameter der SelectLine Applikationen Allgemeine Informationen Mit den Kommandozeilenparameter oder Startparameter können Sie beim Start einer SelectLine Applikation einen Befehl mitgeben.
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
8.3 COM und DCOM (Microsoft)
8.3 COM und DCOM (Microsoft) Windows-Objekte: sprachunabhängiger, binärer Standard für Objektschnittstellen COM Component Object Model: sprachunabhängige Klassen als Binärcode in DLL- oder EXE-Dateien;
Architektur des agimatec-validation Frameworks
Development : Implementierung Validierungskonzept (Dokumentation) This page last changed on Apr 03, 2008 by roman.stumm. Architektur des agimatec-validation Frameworks Generierung der Metainformationen
Netzwerkversion PVG.view
Netzwerkversion PVG.view Installationshinweise Einführung Die Programm PVG.view kann zur Netzwerkversion erweitert werden. Die Erweiterung ermöglicht, bestehende oder neu erworbene Programmlizenzen im
Gebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
DLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
Java Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.
Programm Die Bedienung des Programms geht über das Hauptmenü. Datenbank Schnittstelle Die Datenbank wir über die Datenbank- Schnittstelle von Office angesprochen. Von Office 2000-2003 gab es die Datenbank
Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
Datentypen: Enum, Array, Struct, Union
Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
Applet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER
FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER Diese Anleitung dient dazu, Sie durch den Installations- und Konfigurationsprozess für das gemeinsame Verwenden einer zentralen
Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken
Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken Mit Anleitung zur Erstellung einer FTP Verbindung unter Windows 7 Matthias Lange
Übungen zu Softwaretechnik
Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte
5.1.4.5 Übung - Datenmigration in Windows Vista
5.0 5.1.4.5 Übung - Datenmigration in Windows Vista Einführung Drucken Sie die Übung aus und führen Sie sie durch. In dieser Übung werden Sie Windows Vista verwenden. Empfohlene Ausstattung Die folgende
Installation und Benutzung AD.NAV.ZipTools
Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: [email protected] Die Komponente
Updateseite_BuV-PlugIn-NERZ-Gesamt
Autoren Dipl.-Ing. H. C. Kniß Dipl.-Math. L. Givorgizova Ersteller Geschäftsstelle NERZ e. V. Kölner Straße 30 D-50859 Köln Version: 5.0 Stand: 15.02.2013 Status: akzeptiert 1 Allgemeines 1.1 Änderungsübersicht
Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber
Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS
Inhaltsverzeichnis. Teil I Grundlagen der Programmarchitektur... 1. Vorwort... XIII XV XVI XVI
Vorwort......................................................................... Vorwort der Autoren........................................................... Systemanforderungen für die CD zum Buch......................................
Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt 1. Vorbetrachtungen... 2 2. Die Installation... 2 3. Einstellungen - Erstellung der Verknüpfung... 3 3.1 Benutzung des Konfigurationsprogramms
Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)
Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite
Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser
Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
Visual C++ Windows-Programmierung mit den MFC. Frank Budszuhn. ADDISON-WESLEY An imprint of Pearson Education
Frank Budszuhn Visual C++ Windows-Programmierung mit den MFC ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam
Medea3 Print-Client (m3_print)
Medea3 Print-Client (m3_print) Installationsanleitung Installationsanleitung m3_print.exe...2 1. Installieren von Ghostskript und Ghostview...2 1. Ghostskript...2 2. Ghostview...3 2. Kopieren des Print-Client-Programms...6
12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
affilinet_ Flash-Spezifikationen
affilinet_ Flash-Spezifikationen Inhaltsverzeichnis Allgemeines...2 Klickzählung...2 Lead/Sale Programme... 2 PPC und Kombi Programme...3 Übergabe von Formulardaten...4 clicktag Variante Sale/Lead Programm...4
WPF Steuerelemente Listbox, ComboBox, ListView,
WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,
MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven
MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop
