Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Deskbands auf 64Bit-Systemen (https://www.delphipraxis.net/127742-deskbands-auf-64bit-systemen.html)

Gausi 18. Jan 2009 10:29


Deskbands auf 64Bit-Systemen
 
Ich habe da ein kleines Problem mit Deskbands. Vor einiger Zeit habe ich das Tutorial von Sakura zu diesem Thema durchgearbeitet, und auf dieser Basis ein Deskband für meinen mp3-Player geschrieben. Jetzt habe ich mir die Beta von Windows7 heruntergeladen, und da funktioniert die Installation des Deskbandes nicht. Klar, man muss als Admin arbeiten (runas), damit regsvr32 überhaupt fehlerfrei durchläuft.

Bei mir kommt dann auch die Meldung, dass regsvr32 erfolgreich ausgeführt werden konnte, aber das Deskband erscheint nicht in der Auswahl unter "Symbolleisten".

Ich habe die 64Bit-Version von Windows 7 installiert. Unter 32Bit läuft es nach Aussagen anderer (zumindest einigermaßen), unter 64Bit Vista wieder nicht. Scheint also ein "Bit-Problem" zu sein. Die dll wurde mit Delphi7 Personal unter XP erstellt. Jemand ne Idee, wie man das Problem lösen kann?

Bernhard Geyer 18. Jan 2009 10:31

Re: Deskbands auf 64Bit-Systemen
 
Evtl gar nicht. So wie schon beim Wechsel von 16 auf 32 Bit ist es nur mit großen Aufwand mögich einen höherbittigen Prozess zu "überreden" eine niederbittige DLL zu laden. Für 16/32-Bit gabs eine Lösung, evtl gibts das gleiche Prinzip auch für 32/64-Bit.

Gausi 19. Jan 2009 09:31

Re: Deskbands auf 64Bit-Systemen
 
Hm. So eine Antwort wollte ich eigentlich nicht hören. Irgendwie mit Kompatibilitätsmodi rumzuspielen bringt also auch nichts, weil der Explorer(?) ein 64Bit-Prozess ist und dann die 32Bit-dll nicht laden will - habe ich das richtig verstanden?

Das heißt also, dass ich für eine "saubere Lösung" zuerst den Code in eine andere Sprache portieren müsste, zu der es einen 64Bit-Compiler gibt (Delphi hat sowas ja afaik noch nicht). Dann müsste ich auch zwei Versionen der Dll mitliefern und zur Laufzeit entscheiden, welche im System registriert wird? Oder gibt es eine Möglichkeit, eine 32er-Dll in eine 64er zu konvertieren?

Was sagt denn der Deskband-Experte hier dazu? (Denn deswegen geh ich ja fremd und stelle die Frage zuerst hier. :wink: )

Daniel 19. Jan 2009 09:35

Re: Deskbands auf 64Bit-Systemen
 
Du könntest versuchen, Deinen Code dem FreePascal-Compiler zum Fraß vorzuwerfen. Dieser kann 64bit-Code erzeugen und vielleicht ist Dein Quellcode ja "ähnlich genug", um von FreePascal korrekt verstanden zu werden. Einen Blick ist es vielleicht wert.

Gausi 19. Jan 2009 09:53

Re: Deskbands auf 64Bit-Systemen
 
So ganz ohne weiteres wird das wahrscheinlich nicht gehen, da ich in den Forms des Deskbandes nicht nur die Standard-VCL-Komponenten verwende, sondern zur Unterstützung von Unicode auch die TNT Controls. Aber ich werde mich mal mit Lazarus auseinandersetzen, vielleicht klappt das ja.

sakura 19. Jan 2009 11:50

Re: Deskbands auf 64Bit-Systemen
 
Hi Gausi,

ich bin zwar kein "Deskband-Experte", aber zumindest kam die Vorlage von mir. Und auch zu meinem Bedauern muss ich leider sagen, dass alles Wichtige hier schon gesagt wurde und ich das gleiche Problem auch habe ;(

...:cat:...

Gausi 19. Jan 2009 19:38

Re: Deskbands auf 64Bit-Systemen
 
Ok, dann werde ich mich damit mal abfinden. Aber dann weiß ich jetzt wenigstens, warum das genau nicht funktioniert, und wie man das prinzipiell beheben kann. Danke für die Antworten. :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 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