AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecution Brauche Hilfe

Ein Thema von Teklador · begonnen am 20. Apr 2019 · letzter Beitrag vom 21. Apr 2019
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 22:57
[ganz OT]
Zitat:
Wenn man ShellExecute verwendet, nimmt man PChar
Das ist schlichtweg falsch.

Zitat:
Nur so funktioniert es in allen Delphi-Versionen.
Es ging nicht um die frage ob es bei allen Delphi Versionen so funktioniert.

Fakt ist wenn ich in D2010 PChar verwende wird PChar automatisch zu PWideChar konvertiert oder willst du das bezweifeln?
Wenn ich ShellExecute ohne A oder W aufrufe wird Automatisch von ShellExecuteW ausgegangen versuch es doch einfach.

Die ganze Automatische Konvertierung ist eh ein Witz unter Delphi und dient nur den zweck um eine Abwärtskompatibilität zu erhalten.
In keiner von mir verwendeten Programmiersprache wird so mit Dateitypen umgegangen. (Mein großes Problem mit Delphi)

OK war schon raus aber das musste noch gesagt werden.
Aber für die, die immer recht behalten wollen was steht im Shot! PChar oder PWideChar.
Wenn man mir glauben mag das ich noch lesen kann dann steht dort ganz deutlich für jeden der lesen kann PWideChar!

Zitat:
Ich frag mich wirklich, warum dieser Fehler bzw. die Diskussion dazu immer wieder auftaucht.
Ganz einfach weil deine Aussage einfach falsch und nicht zutreffend ist.
Aber wenn du meinst es ist immer noch PChar nun dann kann ich dir nicht helfen

[/ganz OT]

gruss

Geändert von EWeiss ( 9. Jul 2019 um 09:32 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#2

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:06
Was ich nicht verstehe:

Die Fehlermeldung lautete:
Zitat:
schreibe kommt die Fehlermeldung: Inkompatible Typen PWideChar und String!?
Warum sollte man hier was anderes als PWideChar nehmen, wenn doch explizit PWideChar verlangt wird?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:10
Was ich nicht verstehe:

Die Fehlermeldung lautete:
Zitat:
schreibe kommt die Fehlermeldung: Inkompatible Typen PWideChar und String!?
Warum sollte man hier was anderes als PWideChar nehmen, wenn doch explizit PWideChar verlangt wird?
Und ich verstehe nicht wie @Dalai schreibt das man PChar statt dessen nehmen soll.. Sorry das ist einfach Quatsch wie mein ScreenShot belegt.

gruss
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#4

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:14
Ich denke es wäre sehr hilfreich, wenn der Fragende uns erst einmal mitteilt, welche Delphiversion er hat.
Ich kann mir kaum vorstellen, dass er Berlin Pro hat bei so einem einfachen Problem. Außerdem hätte er dann schon lange in die Delphiquellcodes reingeguckt.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:17
Ich denke es wäre sehr hilfreich, wenn der Fragende uns erst einmal mitteilt, welche Delphiversion er hat.
Ich kann mir kaum vorstellen, dass er Berlin Pro hat bei so einem einfachen Problem. Außerdem hätte er dann schon lange in die Delphiquellcodes reingeguckt.
Für ihn ist das Problem doch schon erledigt Seit dem letzten Beitrag auf Seite 2!
Seine Delphi Version ist "Delphi 10.1 Berlin Professional"

gruss
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:26
Dann bleibt nur noch zu sagen, dass gehofft werden darf, dass er den Nutzer auf dieses Verhalten hinweist. Nicht, dass nachher einem Nutzer durch einen Programmfehler die Zwischenablage fehlt und er sich wundert warum.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#7

AW: ShellExecution Brauche Hilfe

  Alt 21. Apr 2019, 00:08
Das ist schlichtweg falsch.
Nö, ist es nicht.

Zitat:
Es ging nicht um die frage ob es bei allen Delphi Versionen so funktioniert.
Warum nicht? Denk doch mal über den konkreten Fragesteller hinaus. Wenn in der Zukunft jemand (anderes) den Quelltext kopiert, um diesen in einem alten Delphi zu benutzen, wird er - unnötigerweise (aber natürlich völlig korrekterweise) - eine Warnung vom Compiler bekommen, weil dort ShellExecute eben auf ShellExecuteA verweist, was PAnsiChar als Parameter benutzt.

Nur weil der Quelltext im Compiler des Fragestellers korrekt funktioniert, heißt das nicht, dass er das auch im Compiler eines anderen tut.

Zitat:
Fakt ist wenn ich in D2010 PChar verwende wird PChar automatisch zu PWideChar konvertiert oder willst du das bezweifeln?
Daran habe ich keinen Zweifel, und das habe ich auch an keiner Stelle angedeutet.

Zitat:
Wenn ich ShellExecute ohne A oder W aufrufe wird Automatisch von ShellExecuteW ausgegangen versuch es doch einfach.
Aber eben erst in Delphi ab 2009. Davor war es eben ShellExecuteA, und das will PAnsiChar und kein PWideChar.

Zitat:
Ganz einfach weil deine Aussage einfach falsch und nicht zutreffend ist.
Ist sie eben nicht. Und ich bin übrigens nicht der einzige, der immer wieder in diese Richtung darauf hinweist - himitsu schägt in die gleiche Kerbe.

Grüße
Dalai
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: ShellExecution Brauche Hilfe

  Alt 21. Apr 2019, 00:11
Zitat:
Warum nicht? Denk doch mal über den konkreten Fragesteller hinaus. Wenn in der Zukunft jemand (anderes) den Quelltext kopiert, um diesen in einem alten Delphi zu benutzen, wird er - unnötigerweise (aber natürlich völlig korrekterweise) - eine Warnung vom Compiler bekommen
Siehe mein Shot alle deine versuche deine Aussage zu rechtfertigen sind damit widerlegt und dann fragst du noch warum diese Diskussion immer wieder angefacht wird?
Zitat:
weil dort ShellExecute eben auf ShellExecuteA verweist, was PAnsiChar als Parameter benutzt.
Eben nicht was steht auf meinem ScreenShot?
Aber gut hier nochmal genauer!
Delphi-Quellcode:
function ShellExecute; external shell32 name 'ShellExecuteW';
function ShellExecuteA; external shell32 name 'ShellExecuteA';
function ShellExecuteW; external shell32 name 'ShellExecuteW';
Zitat:
Aber eben erst in Delphi ab 2009.
Kein Argument.
Es ist nicht die frage ab welcher Delphi Version sondern die frage steht im Raum warum so eine bescheidene Krankhafte Abwärtskompatibilität.
Warum soll ich also wenn wie im Shot gezeigt bei ShellExecute hier PChar anstelle von PWideChar verwenden? Sorry das wäre schwachsinnig unabhängig davon ob
PChar automatisch nach PWideChar konvertiert wird.. Hier liegt schon das Problem.

Zitat:
himitsu schägt in die gleiche Kerbe.
Uninteressant wer wo was sagt für mich zählen die Fakten und die sind belegt.

gruss

Geändert von EWeiss (21. Apr 2019 um 00:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#9

AW: ShellExecution Brauche Hilfe

  Alt 21. Apr 2019, 00:34
Eben nicht was steht auf meinem ScreenShot?
Selbstverständlich verwenden Delphi-Versionen vor 2009 ShellExecute als "Alias" für ShellExecuteA. OK, vielleicht war "ältere Delphi-Version" zu unkonkret; gemeint war Delphi < 2009, eben Nicht-Unicode-Delphis.

Zitat:
Kein Argument.
Das ist kein Argument für diejenigen, die alte Delphis verwenden? Sehr rücksichtsvoll von dir...

Zitat:
Es ist nicht die frage ab welcher Delphi Version sondern die frage steht im Raum warum so eine bescheidene Krankhafte Abwärtskompatibilität.
Wo ist da eine krankhafte Abwärtskompatibilität? Im Gegenteil: Ich find's gut, wenn Code von vor 10 Jahren auch noch in einem aktuellen Delphi läuft. Das funktioniert aber nicht, wenn die Datentypen sich geändert haben, weil man unsauber gearbeitet hat - eine Vermischung von Datentypen ist unsauber.

Zitat:
Warum soll ich also wenn wie im Shot gezeigt bei ShellExecute hier PChar anstelle von PWideChar verwenden?
Solange du den Code nur für dich schreibst oder nur für einen ganz bestimmten Compiler, spielt es keine Rolle. Aber wir sind hier in der Öffentlichkeit, und da ist es immer eine gute Idee, auf andere Rücksicht zu nehmen, und dazu gehören auch Nutzer von Delphi älter 2009. Andererseits müsstest du dir überhaupt keinen Kopf darüber machen, ob nun PChar ein PWideChar ist oder nicht, wenn du einfach den generischen Typ PChar benutzt (außer eben an den Stellen, wo ein expliziter Ansi-/Wide-Typ verlangt wird, was ziemlich selten ist).

Grüße
Dalai
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: ShellExecution Brauche Hilfe

  Alt 21. Apr 2019, 00:40
Zitat:
Wo ist da eine krankhafte Abwärtskompatibilität?
Krankhaft weil nur von Delphi Praktiziert.
Mach das mal mit Visual Studio oder einer anderen Programmiersprache.

Mich interessiert nur was meine aktuelle Delphi Version mir vorschreibt.. nicht mehr nicht weniger und das ist nun mal..
Delphi-Quellcode:
function ShellExecute; external shell32 name 'ShellExecuteW';
function ShellExecuteA; external shell32 name 'ShellExecuteA';
function ShellExecuteW; external shell32 name 'ShellExecuteW';
Zitat:
Aber wir sind hier in der Öffentlichkeit, und da ist es immer eine gute Idee, auf andere Rücksicht zu nehmen, und dazu gehören auch Nutzer von Delphi älter 2009.
Selbst wenn ich das würde wird bei ShellExecute in meiner Delphi Version und der des Thread Erstellers trotzdem PWideChar erwartet du kannst da rumreden wie du willst es wird nicht auf ShellExecuteA verzweigt unabhängig davon ob ich jetzt PChar oder PWideChar verwende.
Das sollte jetzt langsam auch dir klar sein.

Aber.. ich könnte PChar verwenden so das auch ältere Versionen mit meinem Source arbeiten könnten aber warum soll ich das tun..
Wenn ich PChar verwende ja dann verzweigt ShellExecute unter älteren Delphi Versionen auf 'ShellExecuteA' aber ich bin nicht dafür zuständig dafür sorge zu tragen
das die Abwärtskompatibilität zu unterschiedlichen Delphi Versionen eingehalten wird. Interessiert mich einfach nicht.

Mehr ist da nicht zu sagen.
Du magst deine Meinung haben dann lebe damit.
Aber wundere dich nicht das diese Diskussion immer wieder aufflammt.

gruss

Geändert von EWeiss (21. Apr 2019 um 01:01 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:48 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