Autor Beitrag
Steve1024
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Mi 07.02.07 09:31 
Hallo,

ich habe mal wieder eine Frage...
Was macht Windows bei einem OLE Local_Server ? Kann man das mit Delphi kopieren bzw. Emulieren???
Ich würde gerne wissen, wie Windows von Prozess A ein Objekt nach Prozess B erzeugt, ohne dass es eine Access Viloation gibt... Denn der Objekt-Speicher wird ja z.B. von Delphi nach wie vor erzeugt (CreateInstance), und das ist ja dann nur der lokale Speicher von Prozess A, richtig?
Wie machen die denn das, so zu sagen ein Shared Objekt zu erstellen?? Ich würde sowas auch gerne machen, aber ohne die OLE von Windows zu nutzen. Geht das ?

Bitte helft mir und schon mal Danke für die Antworten...

Gruß Steve
Steve1024 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Mo 12.02.07 13:23 
Titel: Kann mir da niemand helfen??
Weiss niemand, wie Windows OLE 2.0 das macht?? Das finde ich wirklich sehr schade....
JDKDelphi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 115
Erhaltene Danke: 22

WIN2000, XP, WIN 7 , UNIX, LINUX
Assembler für (Z8x, 68xxx,R6000,Intel), DELPHI 6 Enterprise, MAGIC eDeveloper V9+V10, C++, C#,VB, .NET, zertifizierter iBOLT-Programmierer
BeitragVerfasst: Mo 12.02.07 14:09 
Titel: OLE 2.0
Hallo Steve1024,

meinst Du COM, COM+ bzw. DCOM??

_________________
Wo andere aufhören, fange ich erst an..
Steve1024 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Mo 12.02.07 16:18 
Hi JDKDelphi,

schon mal danke für eine Antwort...
Ich denke, ich meine COM, denn COM wird doch über CoCreateInstance bzw. CoRegisterClassObject ausgeführt, oder??

Ich habe schon festgestellt, dass CoRegisterClassObject zwei neue Threads in meiner Anwenung erstellt und ausführt, aber wozu die sind, weiss ich leider auch nicht...

Hoffe du oder zumindestens irgendjemand kann mir helfen... - Danke.

Gruß Steve

PS:
Also um die Sache zu vereinfachen, geht es um Shared Objects, welche ich ohne OLE bzw. COM zur verfügung stellen möchte (aber als Interface). Daher scheidet die Lösung mit MMF aus (da wird die CreateInstance Method von TObject umgeschreiben. Das bedeutet aber, dass die Client-Application die Klasse kennen muss, was bei IUnknown oder so nicht notwending ist um eine Methode zu finden).
Steve1024 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Mi 14.02.07 12:17 
Kann mir denn da jetzt immer noch keiner helfen???

Finde ich wirklich sehr schade...
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Mi 14.02.07 12:19 
Wieso willst du denn das Rad nochmal neu erfinden und nicht einfach COM benutzen?

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Steve1024 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Mi 14.02.07 14:27 
Weil wenn ich das mit Objekte machen kann, dann so denke ich auch mit anderen Speicher-Adressen, oder??
Vorallem würde es mich sehr interresieren, wie man eine Funktion in Prozess A nach Prozess B bekommt, ohne den Pointer bzw. den Bezug zum Original zu verlieren.

Denn so viel ich weiss, ist es durch die COM Objekt von Prozess A möglich, aus Prozess B lokale Variablen des Prozess A abzufragen, oder?

Mich interresiert das ganz sehr stark, denn es wäre gut, wenn ich aus Prozess B funktionen in Prozess A aufrufen. Nur duch ein einmaliges registrieren der einzelnen Funktionen. Damit kann ich dann auch z.B. systemweite Variablen erzeugen, oder??

Danke
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Mi 14.02.07 14:33 
user profile iconSteve1024 hat folgendes geschrieben:
Mich interresiert das ganz sehr stark, denn es wäre gut, wenn ich aus Prozess B funktionen in Prozess A aufrufen. Nur duch ein einmaliges registrieren der einzelnen Funktionen. Damit kann ich dann auch z.B. systemweite Variablen erzeugen, oder??

Danke


Genau das kann COM. Wenn du es nur benutzen willst, nimm doch einfach COM. Ob du die Variablen jetzt in ein globales Objekt steckst oder das ganze ohne OOP machst, is doch völlig egal.
Wenn dich interessiert wie das intern funktioniert, verweis ich mal auf Literatur, keine Ahnung ob man das irgendwo im Netz findet. Das Stichwort ist auf jeden Fall "Marshalling".


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Steve1024 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows 2K, XP, 7 & Server 2003 - 2008; Linux (Ubuntu, Fedora)
D7, D05, D06, D09, DXE
BeitragVerfasst: Mi 14.02.07 15:10 
Vielen Dank...
damit kann ich was anfangen. Super....