!! ApplicationSettings Version 1.0 !!



  • Hm, wo find ich die Mailadi genau, ich finde überall nur:

    "Der Zugriff auf diese eMail-Adresse ist durch die Administration oder den Benutzer gesperrt worden."



  • Mail unterwegs

    danke

    [ Dieser Beitrag wurde am 28.02.2003 um 14:31 Uhr von Unix-Tom editiert. ]



  • Hi,

    kann vielleicht jemand ein kurzes, funktionierendes Beispiel dazu posten? Ich bekomme das irgendwie nicht hin. 🙄

    Zum Beispiel verursacht folgendes Programm einen Absturz. Die DLL habe ich vorher mit regsvr32 registriert.

    #import "C:\ApplicationSettings.dll" no_namespace raw_interfaces_only
    
    #define UNICODE
    #define _UNICODE
    
    #include <windows.h>
    #include <tchar.h>
    
    int main() {
        CoInitialize(NULL);
    
        // Objekt erstellen
        IPerApplicationSettingsPtr spAppSettings;
        spAppSettings.CreateInstance( __uuidof(PerApplicationSettings));
    
        // Format setzen (geschieht nur 1x beim Starten des Programms)
        spAppSettings->SetDestinationFormat(DF_XML);
    
        // Ziel setzen (für Registry ein Schlüsselstring) (nur beim Starten notwendig)
        _bstr_t file( _T("C:\\myInit.xml"));
        spAppSettings->put_Destination(file);
    
        // Testeintrag erstellen
        _bstr_t bstr1( _T("testSection")), bstr2( _T("testValueName1"));
        _variant_t varValue((UINT)5);
    
        // so schreibt man eine Einstellung
        spAppSettings->put_Value(bstr1, bstr2, varValue);
    
        // Datei speichern (flushen)
        spAppSettings->Save();
    
        CoUninitialize();
    
        return 0;
    }
    


  • @Trolli
    Update wurde schon rausgeschickt. Sicherlich ist die DLL noch nicht ohne Fehler, da ich für das Ganze erst knapp 3h Arbeit reingesteckt habe.



  • @Trolli
    P.S.: Es wäre net, dass, wenn Du einen Absturz entdeckst, Du wenigstens die Codezeile angibst, an welcher es passiert !



  • Mir bitte auch mailen...

    Windows 2000 / commander at c-plusplus . de (wegen spamrobots) 😉

    danke



  • Hi!

    Sorry, das ich den Fehler nicht gepostet hatte.

    Ich hatte vergessen Release() vor CoUninitialize() aufrufen. Jetzt funktioniert es einwandfrei. 🙂

    Ein kleiner Verbesserungsvorschlag: Einheitliche Methodennamen. Manchmal hast du das Verb groß, manchmal klein, mal mit Unterstrich, mal ohne. 😉

    Danke!



  • @Trolli
    Du meinst wahrscheinlich SetDestinationFormat! Ok, werde ich ändern. Hatte es initial als Funktion geschrieben sowie alle anderen Befehle auch. Danach habe ich es dann auf get/put-Properties geändert, aber das nicht für SetDestinationFormat->put_DestinationFormat übernommen.



  • Registry-Problem:
    Da in die Registry nur DWORD oder StringZero geschrieben werden können, muss ich auf ein einheitliches Format ausweichen, was die Datentypen double/DATE u.s.w. betrift.

    Ich denke, dass es günstig wäre, für alle Datentypen Reg_Binary zu nehmen, da dann in den ersten 2 Bytes der Typ stehen kann und der Speicherverbrauch in der Registry am geringsten ist.
    Nachteil ist, dass es vom Registry-Editor nicht mehr editiert werden kann!

    Andere Vorschläge bitte jetzt posten!

    Thx



  • Update-Vorschlage "Verbindungspunkte":
    Jedes Objekt, welches Daten liest oder schreibt, kann sich über Verbindungspunkte (Connection Points) mit dem Settings-Objekt verbinden und somit über Änderungen benachrichtigt werden, die ausserhalb an einer bestimmten Eigenschaft vorgenommen wurden. Gut einsetzbar bei komplexen Einstellungsdialogen, in denen die kompletten Anwendungseinstellungen vorgenommen werden können.



  • Hi,

    Bitte mir auch schicken:

    Win2000

    kai.eberitsch@freenet.de

    MFG
    Kai


Anmelden zum Antworten