Monthly Archives: March 2008

Treffen mit zwei vom VC++ Produkt-Team in Frankfurt am 17.4.!

Am 17.April 2008 kommen zwei Programm-Manager von VC++ nach Deutschland und veranstalten in Frankfurt ein kostenloses Treffen mit Euch!
Jeder der Interesse hat kann daran teilnehmen. Die Plätze sind aber beschränkt! Also, meldet Euch rechtzeitig an!

In der 3-stündigen, englischsprachigen, Veranstaltung soll es hauptsächlich um die Folgende Themen gehen (und natürlich Euere Fragen):

  • Neue Features in VC2008
  • VSTS (Team System) für VC++
  • MFCNext (Demos mit der neuen / erweiterten MFC)
  • TR1
  • Ein Ausblick auf die kommende(n) Version(en) von VC++

Mehr Infos siehe:
http://blogs.msdn.com/softwarehersteller/pages/cpp2008-4-ffm.aspx

@ADD: Das Treffen findet jetzt in Bad Homburg statt… siehe obiger Link…

Mal wieder ein Doku Fehler in der MSDN

In der Doku der MSDN stecken viele Fehler drin. Mich wundert es nur, dass teilweise die Fehler so lange unerkannt da drin sind…

Durch einen Kommentar ist mir ein Fehler in meinem Beispiel zum Auslesen der Reparse-Daten (Mount-Point, Junctions) bekannt geworden. Der Fehler beruht darauf, dass ich mich auf die Doku in der MSDN (online und offline) verlassen habe. In der Struktur zu REPARSE_DATA_BUFFER fehlt aber ein Feld (Flags). Dadurch kann man keine sinnvollen SymLink-Daten anzeigen.

Jetzt habe ich mein Beispiel korrigiert und dies auch gleich in der MSDN als Kommentar hinzugefügt

Wie man statisch gegen die C-Runtime (CRT) linkt

In Foren ist einer der häufigsten Fragen:

“Ich kopiere meine (simple) C++ Anwendung auf einen anderen Rechner, aber dort geht diese nicht! Es kommt immer ein Fehler wie ‘Anwendungskonfiguration falsch’ oder ‘SxS Error’. Wie kann ich meine Anwendung dort laufen lassen?”

Das Problem liegt daran, dass per Default gegen die DLL-Version der CRT (C-Runtime) gelinkt wird. Für diie Lösung gibt es nun zwei Antworten:

1. Du musst das passende vcredist_x86.exe auf dem Zielrechner installieren oder mit Deinem Installer die Merge-Modules installieren

Diese Option ist aber meistens zu aufwendig für eine einfache Anwendung. Deshalb rate ich immer zu der zweiten (und aus meiner Sicht besten Lösung):

2. Du musst Deine Anwendung statisch gegen die CRT linken, dann werden die CRT-DLLs nicht benötig und somit gibt es auch nicht den obigen Fehler.

Und bis man das nun wieder jedem erklärt hat, wie man das umstellt habe ich jetzt einen kleinen Screen-Cast (2:12 min) gemacht, der dies schön zeigt:

http://www.kalmbach-software.de/screencasts/VC2008EE-StaticLinkCRT/

PS: Dies geht nicht wenn die EXE/DLL .NET verwendet…