AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kann man auch Ordner kopieren???
Thema durchsuchen
Ansicht
Themen-Optionen

Kann man auch Ordner kopieren???

Ein Thema von maximi · begonnen am 9. Sep 2003 · letzter Beitrag vom 22. Mär 2011
Antwort Antwort
Grafix1989

Registriert seit: 22. Mär 2011
4 Beiträge
 
#1

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 11:05
Hallo,

zum 1. Codebeispiel hätte ich da eine Frage, und zwar sagt er mir dass in der Zeile

pFrom := PAnsiChar(FromPath);

ein DCC Fehler: Inkompatible Typen AnsiChar und Char

wie kann ich das beheben?
Danke

Chris
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 11:07
Deklariere pFrom als PAniChar
Markus Kinzler
  Mit Zitat antworten Zitat
Grafix1989

Registriert seit: 22. Mär 2011
4 Beiträge
 
#3

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 11:25
Wenn ich das bei den Variablen mitdeklariere ändert sich nichts... wo muss es hinzugefügt werden?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.369 Beiträge
 
Delphi 12 Athens
 
#4

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 12:12
Wie sind pFrom und FromPath deklariert?

entweder alles ANSI, Unicode oder dynamisch

PAnsiChar, AnsiChar und AnsiString
oder
PWideChar, WideChar, WideString und UnicodeString
oder
PChar, Char, String
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Mär 2011 um 12:14 Uhr)
  Mit Zitat antworten Zitat
Grafix1989

Registriert seit: 22. Mär 2011
4 Beiträge
 
#5

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 12:39
Naja, es sind alle anscheinend als AnsiString und PAnsiChar deklariert. Das merkwürdige ist, dass es anscheinend bei allen anderen funktioniert hat, und bei mir das erste mal der Fehler aufgetreten ist. Verändert habe ich an dem Beispiel nichts.

Code:
function DoCopy(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString;
    Flags: FILEOP_FLAGS): Integer;
var
  FromPath, ToPath: AnsiString;
  SHFileOpStruct: TSHFileOpStruct;
begin
  FromPath := aFrom + #0#0;
  ToPath := aTo + #0#0;
  with SHFileOpStruct do
  begin
    Wnd := 0;
    wFunc := aOperation;
    pFrom := PAnsiChar(FromPath);
    if ToPath <> '' then
    begin
      pTo := PAnsiChar(ToPath)
    end else begin // target available
      pTo := nil;
    end; // target not available
    fFlags := Flags;
  end; // structure
  Result := SHFileOperationA(SHFileOpStruct);
end;
  Mit Zitat antworten Zitat
Grafix1989

Registriert seit: 22. Mär 2011
4 Beiträge
 
#6

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 13:03
Es liegt offensichtlich an der Delphi Version. Ab 2009 muss es heißen TSHFileOpStructA. Danke an jaenicke.
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#7

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 13:28
Jaein, es liegt daran, dass D2009 standartmäßig Unicode-Strings verwendet. Wenn du alles als WideStrings deklarierst kannst du auch TSHFileOpStructW benutzen. (so wie TSHFileOpStruct).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.369 Beiträge
 
Delphi 12 Athens
 
#8

AW: Kann man auch Ordner kopieren???

  Alt 22. Mär 2011, 13:57
Jupp, wie gesagt, man MUß durchgängig das selbe System nutzen ... ansonsten kann/wird es Probleme geben.

Du hast zwar alles ANSI, außer TSHFileOpStruct, welches dynamisch und somit Unicode ist, wie schon erwähnt wurde.

Also, laß überall das Ansi weg, sowie das letzte A der Funktion, schon ist alles dynamisch
und du kannst das Unicode deines Programmes komplet nutzen.
Ein Therapeut entspricht 1024 Gigapeut.
  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:16 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