C++


ATLC++CRTMFCProgrammierenVS 2013Martin Richter - Mi 21 Aug 2013 17:32

Im Microsoft C++ Team Blog kann nachgelesen werden was sich in ALT+MFC in VS-2013 tun wird:
http://blogs.msdn.com/b/vcblog/archive/2013/08/20/atl-and-mfc-changes-and-fixes-in-visual-studio-2013.aspx

Wer hätte es gedacht…, ja es gibt wieder etwas “Neues”, auch wenn es mehr oder weniger nur Bugfixes sind.

Besonders erwähnenswert ist der Wegfall des MBCS Supports in der MFC, siehe auch hier.
Das die ATL jetzt nur noch als statische Bibliothek mit sehr kleinem Footprint existiert ist nett. Warum eigentlich nicht gleich so?

Nachtrag und Korrektur durch den aufmerksamen Blog-Leser Sasche:

Wie auch im verlinkten Artikel beschrieben, fällt der MBCS Support in VS-2013 noch nicht weg, sondern ist erst mal nur “deprecated” (und die entsprechenden Libs nur noch als separater Download verfügbar). Erst in einer Folgeversion soll der Support für MBCS ganz wegfallen.

 

C++ProgrammierenVS 2012Martin Richter - Do 27 Jun 2013 18:07

Das Update 3 für VisualStudio 2012 wurde gestern veröffentlicht.

http://support.microsoft.com/kb/2835600/en-us
http://blogs.msdn.com/b/vcblog/archive/2013/06/27/what-s-new-for-visual-c-developers-in-vs2013-preview.aspx
http://blogs.msdn.com/b/visualstudio/archive/2013/06/26/visual-studio-2013-preview-available-now.aspx
http://visualstudiomagazine.com/articles/2013/06/26/update-3-of-visual-studio-2012-released.aspx

Damit ist die Regression aus dem Update 2 endgültig behoben. Mit Update 1 konnte man wieder Programme bauen, die auch auf Windows XP laufen. Update 2 machte dies wieder zunichte.

Siehe auch:
http://connect.microsoft.com/VisualStudio/feedback/details/783137/visual-studio-2012-update-2-rtw-breaks-xp-targeting-with-c-when-statically-linking-mfc-and-atl
http://tedwvc.wordpress.com/2013/04/14/how-to-get-visual-c-2012-update-2-statically-linked-applications-to-run-on-windows-xp/
http://blogs.msdn.com/b/vcblog/archive/2013/05/07/fix-visual-studio-2012-update-2-breaks-windows-xp-targeting-with-atl-and-or-statically-linking-mfc.aspx

Zeitgleich wurde auch ein Preview auf VS-2013 veröffentlicht.
http://blogs.msdn.com/b/visualstudio/archive/2013/06/26/visual-studio-2013-preview-available-now.aspx

C++CRTProgrammierenMartin Richter - Do 20 Jun 2013 21:15

Mathe ist ja eigentlich ganz einfach. Die nachfolgende Routine berechnet die kürzeste Distanz zwischen zwei Punkten auf der Erde unter der Berücksichtigung, dass die Erde eine perfekte Kugel ist.
Benutzt wird diese Routine um die Luftlinie zwischen zwei geokodierten Adressen zu ermitteln.

double DistanceBetweenCoordinates(
          double dLatitude1, double dLongitude1, 
          double dLatitude2, double dLongitude2)
{
  // Convert to radient
  dLatitude1 *= M_PI / 180;
  dLongitude1 *= M_PI / 180;
  dLatitude2 *= M_PI / 180;
  dLongitude2 *= M_PI / 180;
 
  // Get distance
  double dDistance;
  dDistance = sin(dLatitude1) * sin(dLatitude2) + cos(dLatitude1) * 
        cos(dLatitude2) * cos(dLongitude2-dLongitude1);
  // Ohne diese Zeile haben wir ein Problem... dDistance ist evtl. >1
  // dDistance = min(dDistance,1.0);
  dDistance = acos(dDistance) * EARTH_RADIUS;
  return dDistance;
}

Eigentlich ganz einfach. Aber dieser Code hat ein massives Problem, denn dDistance kann vor dem acos durch Rundungsfehler größer als 1 werden.

Für die folgenden Werte passiert etwas Übles:

dLatitude1 0.86208095750908087 
dLongitude1 0.15333764167657613 
dLatitude2 0.86208095750908087 
dLongitude2 0.15333764167657613

Eigentlich müsste glatt 1 herauskommen, denn die Koordinaten sind gleich, aber dDistance wird bei diesen Werten 1.0000000000000002. Der Sinus bzw. Cosinus ergibt eben doch leicht abweichende Werte. Der folgende acos scheitert dann aber und das Resultat wird NaN (Not a Number). Erlaubt sind natürlich nur Werte <=1.0 und >=-1.0. Die Folge ist, dass die Distanz nicht 0.0 ist.

Also muss hier eine kleine Sicherung eingebaut werden, die Aufgrund der Rundungs-Genauigkeitsfehler, das überschreiten von 1 verhindert.
Eigentlich ist Mathe ganz einfach, aber auf einem Rechner ist das alles manchmal ganz anders.

PS: Ich weiß schon warum ich noch nie Fließkommaarithmetik auf PCs mochte.

C++CommunityProgrammierenMartin Richter - Do 20 Jun 2013 17:35

<Ironie>Mittlerweile frage ich mich ob Microsoft überhaupt noch eine Community will.</Ironie>
Ja sicher wollen sie das und sagen und versichern tun das auch alle Offiziellen immer und überall. Das nehme ich Ihnen sogar ab. Aber mit der Umstellung der Forensoftware haben sie sich wohl eher einen Bärendienst geleistet. Und mit dieser “neuen” eigenen MSDN-Forenplattform werden Sie kaum Bäume ausreißen.

Die HTTP Foren wurden nun ein weiteres Mal umgestellt und sind nun – aus meiner persönlichen Sicht – gar nicht mehr zu bedienen.
Weiterhin bezweifle ich stark, dass sich mit dieser neuen Forensoftware wirklich viele Nutzer anfreunden können. Es ist einfach auf den ersten, zweiten und dritten Blick viel zu undurchschaubar und chaotisch. Man findet alles mögliche, nur nicht das was man sucht. Die Übersicht über Meine Foren, ist kaum zu gebrauchen, alte nicht mehr existente Einträge lassen sich nicht entfernen. Meine Forenthreads fehlt ganz! Es ist extrem kompliziert zwischen den deutschen und englischen Forenbereichen zu wechseln. Ich verirre mich immer in den deutschen, englischen, Technet, MSDN Seiten. Tausend Foren und Bereiche aber keine Übersicht. Optische großflächige Schalter rauben den Raum für eigentliche Informationen. Es muss ja jetzt alles “flat” sein.
Ich verstehe nicht, warum Filter den Vorzug vor klaren Baumstrukturen bekommen?

Von den Bugs will ich gar nicht reden: “Leider kann Ihre Anforderung nicht bearbeitet werden.” , “Es wurden keine Ergebnisse gefunden.”, Links Führen ins leere, Administrative Funktionen melden Serverfehler. Die NNTP-Bridge arbeitet nicht. Es gehen wieder Gerüchte um, dass die Bridge ganz eingestellt wird. :(

DAS macht keinen Spaß. Ich muss mir stark überlegen, ob ich hier überhaupt noch vorbei schauen soll.
Aber da sich hier seit “Zerstörung” der NNTP Foren auch keine neue Community gebildet hat, ist das wohl auch kein großer Verlust: Der letzte macht dann mal das Licht aus…

C++CRTProgrammierenVS 2012Martin Richter - Mo 20 Mai 2013 17:58

In einem Note in meinem Blog wurde es ja auch erwähnt, das Update 2 zu Visual Studio 2012 eine Regression hat. Mit Update 1 konnte man wieder Programme bauen, die auch auf Windows XP laufen. Update 2 machte dies wieder zunichte. Jetzt ist ein RC für Update 3 verfügbar gemacht worden mit dem dieser Fehler behoben wurde.

Hier die Ankündigung im C++ Blog:
http://blogs.msdn.com/b/vcblog/archive/2013/05/07/fix-visual-studio-2012-update-2-breaks-windows-xp-targeting-with-atl-and-or-statically-linking-mfc.aspx

C++ProgrammierenSoftwareToolsMartin Richter - Do 02 Mai 2013 18:11

Ich hatte ja schon mehrfach in meinem Blog auf CPPDepend hingewiesen. Ein tolles Tool für die Code Analyse.

Jetzt gibt es eine kostenlose Version für alle Open-Source-Entwickler.
Mehr dazu findet sich in diesem Link, schaut einmal selbst ob die Lizenzbedingungen für Euch in Frage kommen könnten.

Um in den Genuss einer solchen Lizenz zu kommen muss man eigentlich nur seinen Namen und den Link auf das Projekt an Support@cppdepend.com senden. Einfacher geht es nicht 😉

C++CommunityProgrammierenMartin Richter - So 28 Apr 2013 16:10

Sie steht schon vor der Tür, die Advanced C++ Conference 2013 in Bad Aibling vom 06. bis 08. Mai.

Leider bin ich diesmal nicht von der Partie, aber ich hoffe, dass es genug Teilnehmer geben wird.
Es wäre schade, wenn diese C++ Konferenz mangels Teilnahme wieder verschwinden würde.
Ich kann nur sagen, dass sich die letzten beiden Konferenzen gelohnt haben.

Ich hatte es anders geplant, aber man hat über bestimmte Ressourcen, wie Gesundheit und Familie oft nicht die 100%ige Kontrolle. :(

C++ProgrammierenVS 2012Martin Richter - Fr 05 Apr 2013 22:53

Nach dem CTP 4, das Ende letzten Monats heraus kam ist nun das Update 2 für VS-2012 endgültig freigegeben.

http://blogs.msdn.com/b/somasegar/archive/2013/04/04/visual-studio-2012-update-2-now-available.aspx

Weitere Infos:
http://support.microsoft.com/kb/2797912/en-us

Download:
http://www.microsoft.com/de-de/download/details.aspx?id=38188

C++ProgrammierenVS 2012Martin Richter - Fr 22 Mrz 2013 09:00

Microsoft veröffentlicht Update 2 für VS-2012

http://support.microsoft.com/kb/2797912/en-us

Neues gibt es im C/C++ Bereich nicht. Insgesamt sieht es aus als ob hier hauptsächlich Bugs gefixed wurden.
Für VC++ wurden einige Compilerfehler behoben und am IntelliSense gearbeitet. Auch ein Fehler, der falsche Fixups in den PDB Dateien erzeugt wurde behoben.

 

C++Martin Richter - Sa 19 Jan 2013 15:06

Vorab möchte ich hinweisen, dass auch dieses Jahr in der ersten Mai Woche vom 06. bis 08. Mai die Advanced C++ Conference stattfinden wird. D.h. am 06.05 wird der Workshop stattfinden und am Dienstag und Mittwoch die Konferenz.

Genauere Informationen stehen allerdings noch aus und die Anmeldeseite wird ab nächster Woche laufen:
http://www.adcpp.de/

Zur Info: Am Donnerstag den 09.05 ist Himmelfahrt. Ehrlich gesagt wäre mir die Konferenz auf einem Donnerstag und Freitag wie die letzten Jahre über lieber gewesen.

« Vorhergehende SeiteNächste Seite »