Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

11.12.2015, 21:22

GetLastError liefert dir einen erweiterten Fehlercode der letzten WinAPI-funktion zurück. Unter VisualStudio kannst du auch nach der Anweisung einen Breakpoint setzen und im Debugmodus, wenn dieser erreicht wurde, schreibst du in das Watch-Window für Variablen den Pseudonamen @err,hr hinein, was zum Code und zugehöriger Fehlerbeschreibung von GetLastError evaluiert.

So habe einen Breakpoint gesetzt auf GetLastError und habe es zu Watch hinzugefügt.
Ich kann aber nichts hineinschreiben.

Im Value steht:
Taking the address of an intrinsic function is not allowed.

12

11.12.2015, 21:26

Was willst du denn da hineinschreiben? GetLastError gibt dir nen errorcode zurück, das mit dem watch ist eben nur ein shortcut um diesen code direkt einzusehen.

13

11.12.2015, 21:29

schreibst du in das Watch-Window für Variablen den Pseudonamen @err,hr hinein,

Das hast du doch aber gerade gesagt :golly:

14

11.12.2015, 21:31

Du hast von hineinschreiben gesagt. Ich hab dich aufgeklärt dass das sinnlos ist. ;)
Aber das mit dem Cast hast du jetzt auch verstanden, oder?

15

11.12.2015, 21:33

Aber das mit dem Cast hast du jetzt auch verstanden, oder?

Nicht richtig :S
Du meinst ich soll den GetLastError mit einem static_cast in einen std::string umwandeln und so ausgeben?

16

11.12.2015, 21:35

Nochmal: du willst einen DWORD (=unsigned int) in einen Zeiger auf einen c-string (=const char*) casten.

17

11.12.2015, 21:37

Nochmal: du willst einen DWORD (=unsigned int) in einen Zeiger auf einen c-string (=const char*) casten.

Fast richtig.
Ich muss einen DWORD in einen Zeiger auf einen LPCWSTR casten.

18

11.12.2015, 21:43

wo kommt da ein zusätzlicher Zeiger vor? Nochmal zum mitschreiben: DWORD = unsigned int, LPCWSTR = const wchar_t* aka. Zeiger auf einen nullterminierten block von wchar_ts. Solch ein cast lässt den Wert eines DWORD als einen Zeiger auf jenen block interpretieren.

19

11.12.2015, 21:45

Aha ok, danke für die Erklärung :)
Wie caste ich es denn jetzt genau richtig, damit es funktioniert?

20

11.12.2015, 21:48

Du musst die Zahl in einen string konvertieren, zb mit std::to_string bzw. std::to_wstring.

Werbeanzeige