AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Alte Komponente von D7 in Tokyo überführen
Thema durchsuchen
Ansicht
Themen-Optionen

Alte Komponente von D7 in Tokyo überführen

Ein Thema von Dumpfbacke · begonnen am 7. Aug 2019 · letzter Beitrag vom 7. Aug 2019
Antwort Antwort
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Alte Komponente von D7 in Tokyo überführen

  Alt 7. Aug 2019, 20:03
Hallo Leute,
wir haben hier ein alte Komponene welcher wir früher immer unter Delpi 7 benutzt haben. Nun soll / müssen wir ein altes Projekt nach Tokyo bringen. Für die Komponenten liegt uns der Source vor und ich dachte ich versuche es einfach einmal unter Tokyo zu installieren und hatte schon etliche Fehler erwartet. Es komen bis jetzt jeodch nur zwei Stück. Ich bin mir aber nicht sicher ob er wiklich alle pas Dateien schon versucht hat. Die zwei Fehler sind:

Delphi-Quellcode:


[dcc32 Fehler] IPutils.pas(186): E2267 Bei der vorherigen Deklaration von RecvUdpBuf wurde die Direktive 'overload' nicht angegeben


function RecvUdpBuf(const Socket: TSocket; var Buf; Size: Integer; var IP: string; var Port: Integer; var BufSize: Integer): Boolean;



[dcc32 Fehler] IPutils.pas(225): E2010 Inkompatible Typen: 'PAnsiChar' und 'PWideChar'


Remote.sin_addr.S_addr := inet_addr(PChar(IP));
Kann mir hier jemand helfen und mir sagen was ich hier ggf anpassen lann. Beim zweiten vermute ich einmla das ich PAnsichar benutzten muss. Aber was mache ich beim ersten Fehler ? In der pas Datei gibt es die Function nur ein mal.

Danke schon einmal an Euch Tanja
Tanja
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.938 Beiträge
 
Delphi 12 Athens
 
#2

AW: Alte Komponente von D7 in Tokyo überführen

  Alt 7. Aug 2019, 20:31
Hallo Tanja,

zur Beseitigung der ersten Meldung: mal suchen, ob es irgendwo sonst eine weitere Deklaration
von RecvUdpBuf gibt die sich unterscheidet.

Ggf. über "Find in files" und dort "In Ordner und Unterordner" suchen lassen.

Zum zweiten fehler:
In D2009 wurde ja auf Unicode umgestellt. Dadurch wurde auch aus dem PChar ein PWideChar,
da vermutet wurde, dass der PChar in den meisten Fällen zum Aufruf von WinAPI Funktionen
benutzt wird, die dann aber typischerweise auch auf die WideChar Variante umwechseln.

Was richtig ist hängt jetzt ein wenig von inet_addr und dessen Deklaration ab.
=> diese mal anschauen (z.B. rechtsklick -> gehe zur Definition) und dann als Datentyp
benutzen was dort gewünscht wird. Entweder PAnsiChar oder PWideChar.

Grüße und viel Erfolg
TurboMagic
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Alte Komponente von D7 in Tokyo überführen

  Alt 7. Aug 2019, 21:38
Hallo,
Zitat:
function RecvUdpBuf(const Socket: TSocket; var Buf; Size: Integer; var IP: string
Zeige doch mal die Signatur dieser Funktion im Interface- und im Implementation-Teil.
Und ja, es liegt an string.

Ich würde das erst mal durch AnsiString ersetzen.
Wenn das nicht klappt, hast du viell. eine abgeleitete Komponente oder benutzt z.B. Indy (TUdpSocket),
wo die Methode RecvUdpBuf jetzt anders definiert ist.

PS:
Wie bereits vorher geschrieben, hat es etwas mit Unicode zu tun.
Heiko
  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 10:35 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