![]() |
COM Klassen werden mit kurzen Dateinamen registriert
Ich bin hier eben auf eine Problem gestossen, das mir bisher nicht aufgefallen ist. Wenn ich eine COM-Klasse registriere wird im InprocServer32 RegKey der kurze anstatt dem langen Dateinamen gespeichert, wenn der Dateipfad eien Space enthält. Das ist nicht mehr aktuell (war es das jemals?) und der Code in System.Win.ComObj.pas (TComObjectFactory.UpdateRegistry) mach da Blödsinn, sobald im Dateipfad ein Space enthalten ist:
Delphi-Quellcode:
Keine Anhung wieso das da gemacht wird und ob das irgendwas uraltes ist, das man schon längst hätte entfernen können? Wenn ich da die COM Klassen Registrierungen in meiner Registrierung anschaue, gibt es da diverse MS COM Klassen, die beim InprocServer32 Eintrag beim Dateipfad Leerschläge enthalten. Das kann also keine Vorgabe sein und da macht Delphi doch das falsch.if AnsiPos(' ', ShortFileName) <> 0 then ShortFileName := ExtractShortPathName(ShortFileName); Das Problem ist wie folgt bei mir aufgetreten. Ich habe den Ordner, in dem die registrierte DLL liegt, in einen neuen Ordner kopiert und den alten gelöscht. Dann habe ich den neuen wieder umbenannt auf den alten Name. Grund für dieses seltsame Vorgehen war eine "Macke" im Dateiordner. Nun hat dieses Kopieren und Umbennen dazu geführt, dass der kurze Dateiname sich geändert hat, obwohl der Lange identisch wie vorher ist. Dadurch wurde die COM Klasse nichtmehr gefunden. Ist das in Delphi 11 auch noch so? Sollte man da eine Bug melden? Kann das mal einer in System.Win.ComObj.pas (TComObjectFactory.UpdateRegistry) checken? |
AW: COM Klassen werden mit kurzen Dateinamen registriert
Könnte das bitte mal jemand mit Delphi 11 kontrollieren? Soll ich hier einen Bugreport schreiben? Es macht einfach überhaupt keinen Sinn, das Delphi die Com-Klasse mit kurzem Dateinamen registriert, der dann Probleme machen kann.
|
AW: COM Klassen werden mit kurzen Dateinamen registriert
Ist immer noch so. Ja, bitte melde das in QP.
|
AW: COM Klassen werden mit kurzen Dateinamen registriert
Ok danke. Dann mache ich das mal.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz