| Autor |
Beitrag |
Mike19
      
Beiträge: 256
Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
|
Verfasst: Mo 11.05.09 16:27
Hallo an alle,
ich habe folgendes Problem:
bei der Einbindung einer DLL zur Laufzeit wird mir immer der Fehler gebracht, dass er eine schreibgeschützte Datei nicht öffnen kann.
wenn ich mir dann die Eigenschaften des Ordners ansehe steht tatsächlich, dass Alle Dateien schreibschutz haben. Entferne ich diesen(selbst als Admin) und drücke auf übernehmen ist der Schreibschutz weg. Wenn ich auf "OK" drücke und dann wieder auf Eigenschaften gehe, ist der Schreibschutz wieder da.
Hab auch schon versucht die Dateien auf einem anderen Laufwerk zu speichern, kommt aber der der gleiche Fehler.
An was kann das liegen ?
Danke schon im Voraus
Micha
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 11.05.09 16:32
Das kam bei mir unter XP und insbesondere Vista durchaus einmal vor. Von einer Parallelinstallation aus klappte es dann (jeweils von Vista oder XP umgekehrt aus), mit Windows 7 geht es absolut problemlos.
Das Problem war bei mir, dass ich irgendwie nicht die vollen Rechte hatte trotz Adminbestätigung. Unter Vista ging nicht einmal die Übernahme des Besitzers. Eine Lösung im selben System habe ich weder bei XP noch bei Vista gefunden.
|
|
Mike19 
      
Beiträge: 256
Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
|
Verfasst: Mo 11.05.09 16:35
Danke,
es könnte sein, weil ich neben Vista die Windows 7 installiert habe
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 11.05.09 16:42
Dann wechsele zu Windows 7 und setze doch volle Rechte für "Jeder". Wenn du die Dateien dort erstellt hast, hat dein Vista-Account daran keine Rechte.
|
|
Mike19 
      
Beiträge: 256
Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
|
Verfasst: Mo 11.05.09 17:22
Nun habe ich windows 7 entfernt, aber immer noch der gleiche Fehler
"[Pascal Error] ustar.pas(40): E2129 Cannot assign to a read-only property"
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 11.05.09 17:24
Äh.. der Fehler besagt, dass du versuchst, eine Eigenschaft zu schreiben, die nur zum Lesen gedacht ist.
Das ganze hat nichts mit einer schreibgeschützen DLL zu tun.
In welcher Zeile / Prozedur taucht der Fehler denn auf?
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Mike19 
      
Beiträge: 256
Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
|
Verfasst: Mo 11.05.09 17:27
Delphi-Quelltext 1:
| Handle:=Loadlibrary(Pchar('Dienstplan.dll')); |
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 11.05.09 17:29
Benenn Handle mal um.
Erklärung: Das Formular (in dem du dich wahrscheinlich befindest) hat bereits eine Eigenschaft Handle, die man allerdings nicht verändern kann (daher der Fehler).
Wenn du nun noch eine eigene Variable mit diesem Namen hast, weiß Delphi nicht, welche es nehmen soll, und versucht es erstmal mit dem vom Formular -> Fehler.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Mike19 
      
Beiträge: 256
Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
|
Verfasst: Mo 11.05.09 17:35
Begreif ich aber nicht, Handle ist eine Variable THandle und so habe ich es schon oft gemacht und es gab keine Fehler. Der eigentlich von Windows kommt. Die Datei ist ja schreibgeschützt und das Attribut lässt sich nicht ändern.
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 11.05.09 17:50
Mike19 hat folgendes geschrieben : | | "[Pascal Error] ustar.pas(40): E2129 Cannot assign to a read-only property" |
Diese Fehlermeldung kommt vom Compiler, also von Delphi.
Da ist Windows, und somit die eigentliche DLL noch gar nicht im Spiel, somit ist es auch egal ob diese Schreibgeschützt ist oder nicht.
Außerdem wüsste ich gerade nicht, was an einer schreibgeschützten DLL schlimm sein soll - du willst die doch nur verwenden, also lesen.
Alternative zum umbenennen wäre, dass du daraus eine Prozedur machst, und keine Methode des Formulars.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
ffgorcky
      
Beiträge: 573
WIN XP/2000 & 7Prof (Familie:Win95,Win98)
|
Verfasst: Mo 11.05.09 18:10
Also ich würde mich dann mal an dieser Methode probieren, ob Du den Schreibschutz damit nicht ganz rausbekommst.
|
|
Mike19 
      
Beiträge: 256
Win XP, Vista, Win 7
Delphi 2005, Turbo Delphi
|
Verfasst: Mo 11.05.09 19:14
| Zitat: | Diese Fehlermeldung kommt vom Compiler, also von Delphi.
Da ist Windows, und somit die eigentliche DLL noch gar nicht im Spiel, somit ist es auch egal ob diese Schreibgeschützt ist oder nicht.
|
ist mir schon klar, aber warum diese Meldung und warum kann die Rechte der Ordner selbst als admin nicht ändern ?
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 11.05.09 19:20
ffgorcky hat folgendes geschrieben : | | Also ich würde mich dann mal an dieser Methode probieren, ob Du den Schreibschutz damit nicht ganz rausbekommst. |
Nochmal: Der Fehler hat rein gar nichts mit der DLL zu tun, siehe oben...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 12.05.09 07:37
Ein Formular hat die Eigenschaft Handle. Wenn du jetzt eine globale Variable Handle deklarierst und diese in einer Methode deines Formulares verwenden willst, wird sie von der gleichnamigen Eigenschaft des Formulares überdeckt. Und die Eigenschaft Handle des Formulares ist eben nur lesbar, aber nicht beschreibbar.
|
|