Forum: PC-Programmierung cstdint in VisualStudio benutzen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte ein Stück Software vom µC auf dem PC testen. Dazu habe ich 
die nötigen Quellen in ein generiertes MFC Projekt geworfen.
Jetzt bekomme ich Fehler wenn ich Standardtypen wie uint8_t deklariere. 
Den Header <cstdint> habe ich angezogen, da wird gemeckert:

Der globale Gültigkeitsbereich weist kein "int_least8_t" auf. 
AdafruitGfxSimu  c:\Program Files (x86)\Microsoft Visual Studio 
14.0\VC\include\cstdint  23

Fehlt da ein Header oder ein define um diese Typen benutzen zu können?

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
ooops, blöder Fehler, hatte das stdint.h vom gcc in das Projekt kopiert 
und das hat sich nicht vertragen. Jetzt kompiliert es schonmal.

von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


Bewertung
-1 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Dazu habe ich die nötigen Quellen in ein generiertes MFC Projekt
> geworfen.


Warum? Ist das C++-Code?

> Den Header <cstdint> habe ich angezogen, da wird gemeckert:

Wenn Du stattdessen die Headerdatei stdint.h einbinden würdest, gäbe 
es vielleicht weniger Gemecker.

: Bearbeitet durch Moderator
von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
Rufus Τ. F. schrieb:
> Warum? Ist das C++-Code?

ja, die AdafruitGfx Grafikroutinen.

> Wenn Du stattdessen die Headerdatei stdint.h einbinden würdest, gäbe
> es vielleicht weniger Gemecker.

für cpp ist ist cstdint schon richtig, stdint.h führte zum gleichen 
Fehler. Weil da halt die falsche gefunden wurde.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
0 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Rufus Τ. F. schrieb:
>> Warum? Ist das C++-Code?
>
> ja, die AdafruitGfx Grafikroutinen.
>
>> Wenn Du stattdessen die Headerdatei stdint.h einbinden würdest, gäbe
>> es vielleicht weniger Gemecker.
>
> für cpp ist ist cstdint schon richtig, stdint.h führte zum gleichen
> Fehler. Weil da halt die falsche gefunden wurde.

Du kannst auch in C++ den header <stdint.h> verwenden. Dann liegen die 
dort deklarierten Typen im globalen namespace. Wenn Du <cstdint> 
verwendest, liegen die Typen im namespace std.

Also entweder:
1
#include <stdint.h>
2
uint8_t c;

oder
1
#include <cstdint>
2
std::uint8_t c;

Evtl. musst Du dem Compiler dann aber auch noch sagen, welchen 
Sprachstandard Du haben möchtest (>= C++11).

Die header sollten bei jedem Compiler dabei sein. Auch bei dem von 
Microsoft.

: Bearbeitet durch User
von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
ja, langsam dämmerts wieder. Aber die stdint funktionieren jetzt ja.

Und das ich was mit der MFC gemacht habe ist auch lange her. Das ist 
zwar nicht das modernste, aber für die Idee den cpp code vom µC in einer 
PC Simulation laufen zu lassen geht es. Ich habe jetzt ein Beispiel mit 
Direct2D und der Adafruit Grafiklib gemischt, jetzt muss ich noch sehen 
wie ich das Grafik RAM simuliere. Sollte mit einer Bitmap gehen in die 
gezeichnet wird und dann in OnDraw2D() dargestellt wird. Wenn jemand 
dafür noch ein Beispiel hat, her damit. Aber das kriege ich auch 
irgendwie hin.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.