AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Umstieg von RAD-Studio 2007 auf XE2

Ein Thema von musicman56 · begonnen am 15. Dez 2011 · letzter Beitrag vom 7. Jan 2012
Antwort Antwort
mkinzler
(Moderator)

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

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 12:42
Wenn man sauber programmiert hat nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#2

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 12:51
Hallo Markus,

ich kenn mich da leider in den Details nicht so gut aus (bin in Sachen Programmierung ein Autodidakt). Was meinst du denn mit "sauber"?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#3

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 12:53
U.a., dass man nicht automatisch davon ausgegangen ist, dass ein Char = 1 Byte (z.B. bei API-Aufrufen, die einen String und eine Größenangabe in Bytes erwarten).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#4

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 13:50
Hallo Detlef,

so ähnlich hab ich mir das schon vorgestellt. Die Probleme dabei sind: Teile des Codes sind schon 10+ Jahre alt und etwa 1/4 des Codes stammt von meinem ehemaligen Programmierer.

Gibt es denn irgendwo im WEB eine Zusammenstellung über die am häufigsten gemachten Fehler?

Im Großen und Ganzen gehe ich schon davon aus, dass ich einigermaßen "sauber" programmiert hab. Würde denn beispielsweise folgendes problemlos weiter funktionieren:

Delphi-Quellcode:
function RuGetWinDir : string;
var
  puffer : array[0..MAX_PATH] of char;
begin
  GetWindowsDirectory(puffer,MAX_PATH);
  Result := string(puffer);
end;


function RuBrowseForFolder(Handle: THandle; Title: string): string;
var
  WindowList : Pointer;
  bi: TBrowseInfo;
  pidl: PItemIDList;
  strPath: string;
  i : integer;
begin
  Result := '';
  FillChar(bi, SizeOf(bi), 0);
  bi.hwndOwner := Handle;
  bi.pidlRoot := nil;
  bi.pszDisplayName := nil;
  bi.lpszTitle := PChar(Title);
  bi.ulFlags := BIF_RETURNONLYFSDIRS;
  bi.lpfn := nil;
  bi.lParam := 0;
  WindowList := DisableTaskWindows(0);
  try
    pidl := ShBrowseForFolder (bi);
  finally
    EnableTaskWindows(WindowList);
  end;
  SetLength (strPath, MAX_PATH);
  for i := 1 to MAX_PATH do strPath[i] := ' ';
  ShGetPathFromIdList (pidl, PChar(strPath));
  Result := Trim(strPath);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.688 Beiträge
 
Delphi 12 Athens
 
#5

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 13:56
Würde denn beispielsweise folgendes problemlos weiter funktionieren:
Yup!
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.224 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 13:59
Grundsätzlich schaut der Code auf den ersten Blick gut aus.

Aber soweit ich sehe hat Emba-dingsbums die Konstante MAX_PATH falsch definiert.
Diese müsste eigentlich bei verwendung der Win32-Unicode-API 32767 sein (siehe auch MSDN, ist aber auf 1024 beschränkt. Also wenn du sehr lange Pfad hast wirst du Probleme haben (Bei Ansi-WinAPI war die Konstante noch 260).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#7

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 14:20
Hallo,

na dann kann ich doch schon etwas relaxter an die Sache ran gehen. Wäre nur noch die andere Frage zu klären:

Zitat:
Wie gut und zuverlässig läuft XE2 bzw. die damit erstellten Anwendungen? Oder sollte ich vielleicht besser auf die nächste Delphi-Version warten?
Es ist einfach so: Ich hab um die 800 Kunden die sehr zufrieden sind mit der Zuverlässigkeit und Stabilität. Das möchte ich keinesfalls aufs Spiel setzen. Es hat in der Vergangenheit ja schon einige Delphi-Versionen gegeben, die besser gar nicht erschienen wären. Anscheinend ist XE2 noch nicht weit verbreitet
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.688 Beiträge
 
Delphi 12 Athens
 
#8

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 15:22
Anscheinend ist XE2 noch nicht weit verbreitet
Das ist aber auch nicht weiter verwunderlich - schließlich sind einige Bibliotheken erst kürzlich oder noch gar nicht für XE2 angepasst worden. Oft wird eine solche Anpassung auch mit einem Major-Update verbunden, was dann ja auch neue Funktionalität mitbringt.

Ebenso wird nicht jeder gleich alles auf XE2 umgestellt haben, insbesondere nicht aus den gleichen Gründen, die du anführst. Irgendwer muss halt irgendwann mal vorangehen. Man sollte halt immer die Möglichkeit eines Fallbacks bereit stellen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 16:18
Aber soweit ich sehe hat Emba-dingsbums die Konstante MAX_PATH falsch definiert.
Hast du dir den angegebenen MSDN Link auch gründlich durchgelesen? "#define MAX_PATH 260". Wenn du die 32k haben willst, musst du den Pfad über "\\?\D:\very long path" angeben. Wo du die 1024 her hast, weiß ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.224 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Umstieg von RAD-Studio 2007 auf XE2

  Alt 15. Dez 2011, 16:34
Aber soweit ich sehe hat Emba-dingsbums die Konstante MAX_PATH falsch definiert.
Hast du dir den angegebenen MSDN Link auch gründlich durchgelesen? "#define MAX_PATH 260". Wenn du die 32k haben willst, musst du den Pfad über "\\?\D:\very long path" angeben.
Müsste mal ausprobieren ob das wirklich nur mit \\?\ geht.

Wo du die 1024 her hast, weiß ich nicht.
System.SysUtils. Aber wie ich sehe haben mit die ganzen IF-DEFS einen Streich gespielt ...

Aber auch Embaracadero ist verwirrt.

In System.pas ist für Linux MAX_PATH = 1024,
in System.SysUtils.pas ist es 4095 ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:34 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