Seite 1 von 1
Compiler klemmt nach der Deklaration einer Konstanten
Verfasst: 08.05.2009 11:54
von heiße Luft
Hallo Leute,
nach der Konvertierung einer C lib "PviCom.h" mit dem "Header Converter" aus der Libaray SDK habe ich ein Problem bei der Deklaration einer Konstanten.
Original C lib
Original Entsprechung aus einer include für MS-VB
Nach Konvertierung durch den Header Converter für PB:
Der Compiler gibt mir hier die Meldung aus:
Wenn ich die inneren Anführungszeichen weglasse läuft der Compiler durch.
Woran kann es liegen?
bzw: Wie bekomme ich zwei Anfürungszeichen als String?
Gibt es irgendwo einen Text der mir die Fehlermeldungen des Compilers ein wenig erläutert?
viele Grüße hL
(ich weiß Newbies können nervig sein. Deshalb seid bedankt für eure Geduld, auch wenn man mal etwas nicht gleich beim ersten Mal kapiert)
Verfasst: 08.05.2009 12:24
von D@nte
Bei der Meldung gibt's eigtl nix zu erläutern, da steht schon genau was das Problem is "Müll am Ende der Zeile"
Ein String geht IMMER von " bis " sprich nur #Konstante = "" ist eine zulässig zuweisung alles was danach kommt ist 'Müll'.
Wenn ich dein Vorhaben richtig verstanden habe gibt's jetzt min 3 Möglichkeiten das zu lösen:
1.)
2.)
3.)
überall wo #PVICHR_PARAM auftaucht durch #DQOUTE$ + #DQOUTE$ ersetzen
Aber mal so am Rande bist du dir sicher das #PVICHR_PARAM äquivalent zu "" sein soll und nicht eher äquivalent zu " ?!
Sollte #PVICHR_PARAM nämlich nur " darstellen einfach
oder
verwenden
Re: Compiler klemmt nach der Deklaration einer Konstanten
Verfasst: 08.05.2009 12:30
von Little John
heiße Luft hat geschrieben:Wie bekomme ich zwei Anfürungszeichen als String?
heiße Luft hat geschrieben:(ich weiß Newbies können nervig sein. Deshalb seid bedankt für eure Geduld, auch wenn man mal etwas nicht gleich beim ersten Mal kapiert)
"Nervig" möchte ich von meiner Seite nicht sagen. Allerdings wäre es manchmal schon schön, wenn Fragen mehr "auf ihren Kern konzentriert" wären.

Und auch aussagekräftige Threadtitel sind wünschenswert. "Compiler klemmt" hört sich für mich so an, als wenn er sich aufgehängt hat.
//edit: D@nte war schneller ...
Gruß, Little John
Verfasst: 08.05.2009 15:11
von heiße Luft
D@nte hat geschrieben:
Aber mal so am Rande bist du dir sicher das #PVICHR_PARAM äquivalent zu "" sein soll und nicht eher äquivalent zu " ?!
Nein, sicher bin ich mir über überhaupt nichts. Tatsache ist das ich zwei Dateien geliefert bekommen habe. Eine für MS-VB und eine lib für MS-VC. Die Konstanten sind in den Dateien wie oben gezeigt deklariert.
Also für VC nur “
für VB ““
und der Header Converter macht aus ´ “` ja auch ““““ wie in der VB Version.
Ich lasse die Konstante erst mal ausgeklammert. Ob ich sie überhaupt brauche weiß ich eh noch nicht. Wenn ich sie brauche muß ich wohl ausprobieren ob #DQOUTE$ + #DQOUTE$ oder nur #DQOUTE$
Danke für die Antwort
hL
Verfasst: 08.05.2009 15:21
von Kaeru Gaman
> und der Header Converter macht aus ´ “` ja auch ““““ wie in der VB Version.
das ist ebenso merkwürdig wie falsch.
im c-source ist ganz eindeutig
eventuell macht er für VB ein """" daraus, weil man
zum escapen eines quote ein zweifaches quote schreiben muss.
in PB ist das nicht möglich, da werden keine escapes unterstützt.
also mittels der Chr() funktion den ASCII code übergeben.
Verfasst: 08.05.2009 16:14
von edel
Den C Code kann man doch ganz leicht uebersetzen, oder hab ich was falsch verstanden? Ist aber ein Char und kein String.
Verfasst: 08.05.2009 16:32
von Kaeru Gaman
> Ist aber ein Char und kein String.
sicher?
bzw... wo ist der Unterschied?
echte strings gibts in C sowieso nicht, das sind immer CharArrays, noch nicht mal immer nullterminiert...
die Frage wäre also, wie wird die Konstante im weiteren Code verwendet.
wenn sie als numerische CHAR verwendet wird, hast du natürlich recht, dann kann man es einfach als
oder auch als
definieren.