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

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

11

27.02.2009, 10:21

Zitat von »"dot"«

Ich hab nicht gesagt dass C Casts C++ Code schlecht machen, lediglich dass in gutem C++ Code Casts allgemein eher rar sind, der Cast da oben aber so schon passt...


Stimmt, hab ich falsch verstanden. Irgendwie hab ich das auf C++ Casts bezogen.

12

27.02.2009, 15:42

Zitat von »"dot"«

aber die C++ casts sind aussagekräftiger, und in gutem C++ code sind casts eigentlich eh eher selten anzutreffen ;)

die WinAPI ist aber vollständig C, also ist auch code, der direkt mit der winAPI arbeitet, C beeinflusst.

13

27.02.2009, 15:52

Wo ist dein Argument?!
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

14

27.02.2009, 16:00

Zitat von »"Deviloper"«

Wo ist dein Argument?!

Argument wofür? die WinAPI ist nun mal C. und du kannst nur begrenzt mit C++ Sprachmitteln arbeiten (Klassen, templates, polymorphie) wenn du mit Funktionen arbeiten willst/musst, die C sind.
Aber ich dachte, das wäre logisch :?

15

27.02.2009, 16:03

Hm für die Funktionen schreibt man sich meist einfach schnell nen Wrapper und gut is?! Und auch da kommst mit c++-style-cast hin und kannst auch hier meist auf c++-mem-alloc funktionen zurückgreifen ... also is wenig was du ändern musst um problemlos damit arbeiten zu können?!
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

16

27.02.2009, 16:08

Zitat von »"Deviloper"«

Hm für die Funktionen schreibt man sich meist einfach schnell nen Wrapper und gut is?! Und auch da kommst mit c++-style-cast hin und kannst auch hier meist auf c++-mem-alloc funktionen zurückgreifen ... also is wenig was du ändern musst um problemlos damit arbeiten zu können?!

ich glaub du hast mich falsch verstanden.
Er hat ja gesagt, casts wären ein Anzeichen für schlechten C++ Code, aber die Sachen, die man in dem fall statt nem cast hätte nutzen können (bei CreateThread()) wie Templates oder Polymorphie, funktionieren nicht, weil CreateThread nun mal C ist. mit nem Wrapper hättest du das problem ja nur verpackt (auch wenn das je nach situation ne bessere Idee sein kann, als immer mit C-Code zu arbeiten)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

27.02.2009, 22:45

Zitat von »"dot"«

[...] der Cast da oben aber so schon passt...


Mir ist durchaus bewusst dass die WinAPI C ist, das ändert aber nix dran dass man, wenn man reines C++ programmiert, meistens ohne casts auskommt und so wilde pointerrumspielereien eigentlich nicht brauchen sollte...

18

28.02.2009, 01:17

Zitat von »"PCShadow"«

Er hat ja gesagt, casts wären ein Anzeichen für schlechten C++ Code, aber die Sachen, die man in dem fall statt nem cast hätte nutzen können [...] wie Templates oder Polymorphie, funktionieren nicht, weil CreateThread nun mal C ist.
Erstens ist ein Template oder Polymorphie kein Ersatz für einen Cast. Vielleicht für einen void*-Frickelcast und derart maschinennahe Dinge, aber nicht grundsätzlich. Auch in modernem C++ trifft man Casts an (wobei meistens static_cast).

Zweitens gibt es keinen Grund, wieso man in C++-Projekten mit der WinAPI nicht auch C++-Sprachmittel anwenden darf. Man kann zum Beispiel genauso std::vector als kompatible Schnittstelle zu Arrays einsetzen.

19

28.02.2009, 10:31

Zitat von »"Nexus"«

Erstens ist ein Template oder Polymorphie kein Ersatz für einen Cast. Vielleicht für einen void*-Frickelcast und derart maschinennahe Dinge, aber nicht grundsätzlich. Auch in modernem C++ trifft man Casts an (wobei meistens static_cast).

den hat man ja bei CreateThread. Naja, gut, stimmt, für Polymorphie braucht man schonmal static_casts.

Zitat von »"Nexus"«

Zweitens gibt es keinen Grund, wieso man in C++-Projekten mit der WinAPI nicht auch C++-Sprachmittel anwenden darf. Man kann zum Beispiel genauso std::vector als kompatible Schnittstelle zu Arrays einsetzen.

das schon, nur sind halt die WinAPI-Sachen keine Templates, man kann also, wenn man mit der WinAPI arbeitet, nicht in dem Maß C++-Mittel einsetzen, wie z.B. bei der Standardbiliothek. CreateThread ist hier imo ein gutes Beispiel: eine C++-Implementation hätte hier als Template-Parameterisierten Wert erwarten können statt nem void* (auch wenn der dann intern vermtl. genauso weiterbehandelt würde). Will man sowas bei der WinAPI, muss man sich nen Wrapper schreiben.
Auf der anderen Seite gibts ja von MS als C++-Wrapper für die WinAPI zwar die MFC, aber da haben sie imo ein wenig übertrieben, insbesondere, was Makros angeht. btw: wird die MFC überhaupt noch weiterentwickelt/aktualisiert?

20

28.02.2009, 10:51

Wurde letztens erst durch Ribbons usw. erweitert :P Das MFC kein schöner C++-Style ist, braucht man nicht drüber zu streiten.

Die Diskussion is aber voll sinnlos :D
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige