Autor |
Beitrag |
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: So 28.12.08 23:31
Hmm ich habe da ein komplexes Problem,
und ich hoffe ich nerve nicht, weil ich schon soviel gefragt habe in letzter Zeit...
Wie kriegt man den Dateinamen und -pfad aus einem filehandle?
ich habe schon das hier gefunden, kann man das auf Delphi portieren?
Geht das?
mfg Boldar
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 28.12.08 23:37
Schau mal hier, das geht mit GetFileInformationByHandleEx (FileNameInfo):
msdn.microsoft.com/e...aa364953(VS.85).aspx
// EDIT:
Ich sehe schon: das geht so einfach erst ab Vista.
Dann ist vorher wohl das was du im Edit gepostet hast das passende. Übersetzen geht sicher.
Zuletzt bearbeitet von jaenicke am So 28.12.08 23:40, insgesamt 1-mal bearbeitet
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: So 28.12.08 23:40
mmh wie verwendet man das denn?
Was ist denn das für eine Konstruktion??
Aso, erst ab Vista... mhh
Also ich kann ja absolut kein C... 
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 28.12.08 23:44
Das ist eine Aufzählung, in Delphi also sowas: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type TExample = (exaName1, exaName2, exaName3); ... var test: TExample; begin test := exaName2; case test of exaName1: ... exaName2: ... |
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: So 28.12.08 23:48
Wenn da diese Zeile steht:
Quelltext 1:
| BOOL GetFileNameFromHandle(HANDLE hFile) |
was ist dann BOOL ?
Einfach boolean oder longbool??
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 28.12.08 23:55
Nimm doch einfach Bool  . Das gibts durchaus und verweist intern auf den richtigen Datentyp (LongBool), um Übersetzungen zu erleichtern  .
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 11:52
OK, ich habe jetzt versucht das zu übersetzen, aber was ist
lptstring?
das Scheint es in Delphi nicht zu geben...
Das ist aus der Funktion hier:
msdn.microsoft.com/e...ms683195(VS.85).aspx
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 12:03
ist Tchar ein Pointertyp? Ich habe lptstring mit pointer übersetzt, aber dann müsst Tchar auch ein pointer sein...
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 12:07
Aso und gleich noc eine Frage dazu: ich habe die Ausdrücke, die in C integer waren, nach boolean gecastet. Ist das richtig?
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 12:07
Übersetzen würde ich das mit array[0..MAX_PATH] of Char.
Ich hatte bisher nur in die API Referenz kurz geschaut, aber jetzt hab ich grad mal bei Google gesucht  , die Frage gabs schon:
www.delphipraxis.net/topic123965.html
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 12:08
ja, das habe ich zuerst versucht, gab aber einen fürchterlichen rash und das ganze ist sehr unübersichtlich...
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 12:09
Und hier gehts um das selbe, da wird das auch so verwendet der Typ sehe ich gerade:
www.spotlight-wissen...message/1376764.html
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 12:09
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 12:15
Ich glaube du kannst einen String auf PChar gecastet an die Funktion übergeben mit dem Inhalt C: z.B., im C-Quelltext wird der erste Buchstabe durch den jeweiligen Laufwerksbuchstaben ersetzt vor der Übergabe, deshalb das Leerzeichen.
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 12:21
also, ich habs jetzt erstmal übernommen von da
Nur weiss ich nicht wie ich getmappedfilename vernünftig hinkriege, laut msdn inner psapi.dll,
aber bei dieser Deklaration
Delphi-Quelltext 1:
| function GetMappedFileName( const hProcess: Thandle;const lpv: pointer;var lpFilename: array of char;const nsize: Dword):dword; winapi;external 'psapi.dll'; |
kommt der Fehler von wegen Prozedureinspungpunkt nicht gefunden...
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 12:47
Nimm doch einfach die fertigen Übersetzungen aus der JEDI Übersetzung  .
jedi-apilib.sourceforge.net/
--> JEDI API Windows Headers (JWAPI) --> JwaPsApi
Da ist die PsApi schon übersetzt. 
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 12:48
mmh und wie schauts da mit der Lizenz aus?
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 12:52
|
|
Boldar 
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 29.12.08 12:54
mmh aber was heisst das denn jetzt konkret? in dem Wikipedia Artikel steht sehr viel fachchinesich...
Könnte man z.B. den Code in Kommerziellen Projekten verwenden?
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 29.12.08 13:09
Ja, steht in der Lizenz ja, du musst nur die Bedingungen beachten. Z.B. müssen die Dateien unter der MPL auch als ganzes weiterhin darunter stehen, wenn du sie veränderst oder kopierst. Wenn du eine Unit unter der MPL einbindest, dann muss der Rest nicht unter die MPL, wenn du MPL-lizenzierten Code in eine Unit kopierst oder solchen Code veränderst, dann musst du die gesamte Unit unter die MPL stellen (und den Quelltext veröffentlichen).
Im Unterschied zur LGPL (u.a.) muss der MPL Code nicht eigenständig kompilierbar sein, es reicht die Abtrennung in abgeschlossene Dateien (Units).
|
|