AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein .NET-Framework (managed code) 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt
Thema durchsuchen
Ansicht
Themen-Optionen

32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

Ein Thema von Zend · begonnen am 14. Okt 2010 · letzter Beitrag vom 9. Nov 2010
Antwort Antwort
Zend

Registriert seit: 5. Mär 2010
Ort: Braunschweig
17 Beiträge
 
Delphi 7 Professional
 
#1

32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 14. Okt 2010, 09:51
Hallo,

ich hoffe ich poste das hier im richtigen Forum:

Ich soll eine DLL schreiben die ein COM-Objekt exportiert. Das COM-Objekt hat einen Namen in der Form "Productname.Enviroment". Diese DLL soll es in einer 32 Bit und einer 64 Bit-Version geben (da Mischbetrieb von 32 Bit Anwendung und 64Bit Anwendung und vica versa anscheinend nicht möglich).

Auf einem 64 Bit Betriebssystem ist es also Möglich das je nach dem welches Programm meine DLL verwendet die 32 Bit oder die 64 Bit Variante benötigt wird. Da das COM-Objekt allerdings nur über den Namen angesprochen wird ergibt sich hier eine Mehrdeutigkeit.

Wie würde man in diesem Fall am besten vorgehen? Vergebe ich jeweils einen angepassten Namen für die DLLs ("Productname32.Environment" und "Productname64.Environment") oder (Productname.Environment32 und "Productname.Environment64") oder gibt es da eine andere Möglichkeit?

CrossPosting:
http://www.c-sharp-forum.de/viewtopi...&postorder=asc

Grüße
4000
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 14. Okt 2010, 23:53
Du brauchst keine unterschiedlichen Namen.

Die nötigen Verweise von "Productname.Environment" auf die 32-Bit oder 64-Bit DLL erfolgt über den Unter-Registry-Zweig LocalServer32/InprocServer32/InprocHandler32 bzw. den 64-Bit Gegenstücken.

Das Problem ist evtl. eher einen Installer zu finden der auch beide Einträge korrekt installiert ohne das sie sich gegenseitig kaputt machen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Zend

Registriert seit: 5. Mär 2010
Ort: Braunschweig
17 Beiträge
 
Delphi 7 Professional
 
#3

AW: 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 18. Okt 2010, 16:12
Hallo,

vielen Dank. Das Verhalten ist in meinem Interesse und meine Frage damit beantwortet.

Grüße
Zend
  Mit Zitat antworten Zitat
Zend

Registriert seit: 5. Mär 2010
Ort: Braunschweig
17 Beiträge
 
Delphi 7 Professional
 
#4

AW: 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 8. Nov 2010, 14:41
Ich hab nochmal eine Frage:

Brauchen die Interfaces der 64 Bit Variante denn eine andere GUID als die Interfaces der 32 Bit DLL?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 8. Nov 2010, 14:46
Ich hab nochmal eine Frage:

Brauchen die Interfaces der 64 Bit Variante denn eine andere GUID als die Interfaces der 32 Bit DLL?
AFAIK nein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

AW: 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 8. Nov 2010, 15:07
Die Parameter werden automatisch konvertiert, solange es sich um die bekannten COM Typen handelt. Bei Streams oder eigenen Kreationen muss man es selber machen.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#7

AW: 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 9. Nov 2010, 22:52
Die Parameter werden automatisch konvertiert, solange es sich um die bekannten COM Typen handelt. Bei Streams oder eigenen Kreationen muss man es selber machen.
Das wäre doch aber ohnehin nur bei Marshaling wichtig, oder? Wenn jeweils eine 32bit und eine 64bit Variante eines InProc-Servers existieren, ist's doch egal, denn es wird ja die "Muttersprache" (eigene Bittigkeit) gesprochen. Oder irre ich?
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#8

AW: 32Bit und 64Bit DLL-Version: Namenskonvention für COM-Objekt

  Alt 9. Nov 2010, 23:53
Kann ich dir leider nicht beantworten. Durch Registry Redirection, Reflection, Sharing, sowie Kombinationen und Änderungen seit Win7 bin ich da durcheinander geraten.

Ich sag einfach mal...Guckst du hier:

http://msdn.microsoft.com/en-us/libr...53(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz