Nachdem der c++-Standard nun offiziell unter dem Namen c++11 verabschiedet worden ist, stellt sich natürlich die Frage, was wir von diesem Standard schon jetzt verwenden können. Der im Stdcxx Wiki veröffentlichte Artikel C++0xCompilerSupport zeigt, welcher Compiler welche c++11-Feutures bereits unterstützt.
WinSxS des Windows-Systemordners gespeichert. Um festzustellen, welche Anwendung auf welche Version einer DLL zugreift, kann man das von Microsoft bereitsgestellte Tool sxstrace.exe verwenden. Über die Eingabeaufforderung kann man vor dem Start der Anwendung die Datenaufzeichnung mitsxstrace Trace -logfile:test.log
sxstrace Parse -logfile:test.log -outfile:test.txt
sxstrace Trace -logfile:test.log StartTrace failed. Error Message is: Unknown error.
Die neuen (Fenster-) Klassen der MFC, die zum MFC Feature Pack gehören, bieten von Haus aus die Möglichkeit, die aktuellen Zustände der Fenster einer Anwendung (Größe, Position etc.) nach dem Beenden eines Programms in die Registry zu schreiben. Wird die Anwendung zu einem späteren Zeitpunkt wieder gestartet, dann können die alten Fensterzustände mit diesen Registry-Einträgen wiederhergestellt werden. Was aber tun, wenn die Registry hierfür nicht verwendet werden soll?
In den Methoden
BOOL LoadState(LPCTSTR lpszProfileName, int nIndex, UINT uiID); BOOL SaveState(LPCTSTR lpszProfileName, int nIndex, UINT uiID);
der Klasse CBasePane nimmt die Serialisierung der Zustände ihren Lauf. Dabei ist ein Objekt vom Typ CSettingsStore für das Speichern der Daten (in die Registry) verantwortlich:
CSettingsStoreSP regSP; CSettingsStore& reg = regSP.Create(FALSE, FALSE);
Wie das genau funktioniert, kann man an den (virtuellen) Read- und Write-Methoden der Klasse CSettingsStore (vgl. afxsettingsstore.h) sehen. Das Framework gestattet es aber auch, über ein CRuntimeClass-Objekt eigene CSettingsStore-Objekte zu verwenden. Definiert man sich also eine von CSettingsStore abgeleitete Klasse (z.B. CMySettingsStore), dann kann man die Kontrolle über das Speichern der Daten (z.B. in Dateien) übernehmen, indem man die Read- und Write-Methoden entsprechend überschreibt. Voraussetzung ist, dass die eigene Klasse zuvor noch mit
CSettingsStoreSP::SetRuntimeClass( RUNTIME_CLASS( CMySettingsSore ) );
angemeldet wird.
