cstdint in VisualStudio benutzen

Gast #5218911
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?
Gast #5218958
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.
(Firma: Torrox.de) #5219026
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.
Gast #5219115
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren