AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Übergabe anderer DatenTypen verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Übergabe anderer DatenTypen verhindern

Ein Thema von EWeiss · begonnen am 29. Nov 2018 · letzter Beitrag vom 29. Nov 2018
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 11:03
Bsp.
function InitSkin(hMain: HWND; const skConfigFile: String; Maximize: Bool; Minimize: Bool): Bool;

Das const für skConfigFile habe ich hinzugefügt um zu verhindern das ein anderer DatenTyp übergeben werden kann.
Dachte ich zumindest.. funktioniert aber nicht.

Warum?
Ich kann immer noch WideString, PWideChar als DatenTyp deklarieren und übergeben.

Unter C++ wenn ich einen DatenTyp als string deklariere kann ich auch nichts anderes übergeben ohne diesen zu konvertieren.
Irgendwie ein Heilloses durcheinander.

gruss

Geändert von EWeiss (29. Nov 2018 um 11:09 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 11:13
In den konkreten Fall konvertiert Delphi für dich automatisch.
Wenn das Verhalten anderes wäre, würden sehr viele Leute sehr viel fluchen.
Das const bezieht sich nur auf die Veränderbarkeit der Argumente innerhalb der Funktion.
Steht aber alles in der Hilfe bzw. Online-Dokumentation. Auch auf Deutsch.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 11:15
In den konkreten Fall konvertiert Delphi für dich automatisch.
Wenn das Verhalten anderes wäre, würden sehr viele Leute sehr viel fluchen.
Wie kann ich aber verhindern das hier etwas anderes als ein String übergeben wird.
Gar nicht?

Ich fände das für angenehm weil man dann viele Fehler verhindern könnte.

gruss

Geändert von EWeiss (29. Nov 2018 um 11:23 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 11:35
Ich denke gar nicht wenn Du den vordefinierten Typ String meinst. In den Fällen wo es Fehler verursachen könnten gibt Delphi normalerweise auch eine Warnung aus.
Als Alternative könntest Du dir einen eigenen Typ definieren.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 11:46
Ich fände das für angenehm weil man dann viele Fehler verhindern könnte.
So wie das da oben steht funktioniert das doch eh nur für dich Delphi intern.
Das ist doch jetzt keine Schnittstelle, die du nach außen für ggf. andere Sprachen anbietet...oder etwa doch?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 11:46
Ich denke gar nicht wenn Du den vordefinierten Typ String meinst. In den Fällen wo es Fehler verursachen könnten gibt Delphi normalerweise auch eine Warnung aus.
Als Alternative könntest Du dir einen eigenen Typ definieren.
Ok dann ist es halt so. Danke.

Zitat:
Das ist doch jetzt keine Schnittstelle, die du nach außen für ggf. andere Sprachen anbietet...oder etwa doch?
In dem Fall nicht.
Aber es gibt genug andere DLL's wo es so ist also die mit C#,C++ zusammen arbeiten.
Da habe ich ja das gleiche Problem.

Wenn ich dann in der DLL nicht strikt die Datentypen einhalte wie soll das dann Außerhalb korrekt funktionieren.

gruss

Geändert von EWeiss (29. Nov 2018 um 11:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 11:59
Also WENN (d)eine Schnittstelle/DLL mit anderen Programmiersprachen kompatibel sein soll, darf sie sowieso keine Strings benutzen.
Dann muss eh alles über P(Wide/Ansi)Char laufen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Übergabe anderer DatenTypen verhindern

  Alt 29. Nov 2018, 12:09
Also WENN (d)eine Schnittstelle/DLL mit anderen Programmiersprachen kompatibel sein soll, darf sie sowieso keine Strings benutzen.
Dann muss eh alles über P(Wide/Ansi)Char laufen.
Jo das ist klar.
Es geht ja auch nicht im speziellen um string sondern generell um Datentypen.

gruss
  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 21:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz