AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein CPort Komponente - Fehler bei Port-Enumeration
Thema durchsuchen
Ansicht
Themen-Optionen

CPort Komponente - Fehler bei Port-Enumeration

Ein Thema von TERWI · begonnen am 12. Mai 2021 · letzter Beitrag vom 12. Mai 2021
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: CPort Komponente - Fehler bei Port-Enumeration

  Alt 12. Mai 2021, 12:33
Anzahl der "Byte"

(4 + 1) * 2 = 10 für Unicode (2 Byte pro Char)


Das Name in Char, aber die Data in Byte.

Allerdings willst du doch bestimmt den Name speichern? (hab grad keinen COM-Port dran und weiß seh nicht was in Data steht)



Ach ja, weil sind keine Strings, sondern statische Arrays:
Delphi-Quellcode:
// PChar(@ValueName),

// PByte(PChar(@Data)),
Wovei die PChar-Casts unnötig sind, da ein Zeiger auf einen Char ein bereits PChar ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (12. Mai 2021 um 13:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
1.746 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: CPort Komponente - Fehler bei Port-Enumeration

  Alt 12. Mai 2021, 13:29
Ach ja, weil sind keine Strings, sondern statische Arrays:
Delphi-Quellcode:
// PChar(@ValueName),

// PByte(PChar(@Data)),
Wovei die PChar-Casts unnötig sind, da ein Zeiger auf einen Char ein bereits PChar ist.
@ArrayOfChar ist kein PChar, das gilt nur für @ArrayOfChar[Index]

Das gibt sogar einen Comile-Error, wenn Typed @ Operator eingeschaltet ist, sonst wird das nicht geprüft.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: CPort Komponente - Fehler bei Port-Enumeration

  Alt 12. Mai 2021, 13:43
OK, den "strengen" Compiler vergessen, dann eben mit PChar Cast, oder einfach [0] hinten dran.


Du darfst gern, @StatischesArrayOfChar[0] anstatt @StatischesArrayOfChar machen, aber es macht keinen Unterschied (vom Speichermanagement her ... OK, die Typprüfung mal außen vor).

@AnfangDesStatischenArray (wo der erste Char liegt) = @ErstesCharImArray[0]


Aber "immer" mit [0] ist nicht falsch und würde zumindestens für statisches Array und dynamisches Array im Quellcode den selben Code verwenden, und die Typprüfung ist auch froh.
(weniger Varianten = weniger potentielle Fehler)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: CPort Komponente - Fehler bei Port-Enumeration

  Alt 12. Mai 2021, 17:02
PChar muss sein - der Compiler meckert, weil für Data ein PByte von RegEnumValue gefordert.
Bei Valuename passt das mit @.

Das it den 10 byte für ein WChar könnte Sinn machen ....
Data einzeln "durchbuchstabiert" in der org. Version ergibt z. B.
C O M 3 0 0 0 0 0 0 (ein Ansi-String)

Um in Wchar zu wandeln müsste es doch so aussehen ?:
0 C 0 O 0 M 0 3 0 0 (mit Null als Stringende)

Geändert von TERWI (12. Mai 2021 um 17:05 Uhr)
  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 12:45 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