Registry
-
Hallo,
ich habe in meinem Programm mit mehreren Pfaden zu arbeiten die man editieren kann. Diese Pfade speichere ich in der Registry. Das schreiben des Pfades in die Regiostry ist auch kein Probem:
Das sieht in der Regsitry dann so aus:
APPROOT\EditorData\Materials\Textures
usw.
Wenn ich das auslesen will bekomme ich aber nur matsch. Hat die Registry eine bestimmte limieteirung anzeichnen die man auslesenkann ?
-
Größere Beschränkungen sind mir nicht bekannt...
Wie schreibst Du die Daten denn rein? Sind sie via regedit.exe auch korrekt geschrieben worden?
Wie liest Du sie denn wieder aus? Poste doch mal den Code-Schnipsel...
-
Schreiben:
// Editor einstellungen key.Create(HKEY_CURRENT_USER,"SOFTWARE\\OnyxWorldEditor\\Config"); // MaterialPfade schreiben for(int nIndex = 0; nIndex < GetMaterialPathCount(); nIndex++) { // Schlüsselname erstellen sprintf(chBuffer,"MaterialPath_%d",nIndex); // Punkt am Beginn in APPROOT Umwandeln strBuffer = GetMaterialPath(nIndex); if(-1 != (nPos = strBuffer.Find("."))) { if(nPos == 0) { strcpy(chBuffer2,strBuffer); strcpy(chBuffer2,chBuffer2 + 1); strBuffer = chBuffer2; strBuffer = CString("APPROOT") + strBuffer; } } // Schlüssel schreiben key.SetStringValue(chBuffer,strBuffer); key.Close(); }
Auslesen:
DWORD dwBufferSize = 1024; key.Open(HKEY_CURRENT_USER,"SOFTWARE\\OnyxWorldEditor\\Config",KEY_READ); key.QueryStringValue("MaterialPath_0",strBuffer.GetBuffer(1024),&dwBufferSize); key.Close();
Hoffentlich könnt ihr mir helfen
-
Was ist denn "key" und wo ist beim lesen Dein "ReleaseBuffer()"?
-
Key ist eine Instanz von CRegKey
-
- Wo ist Dein ReleaseBuffer?
- Was für einen Wert liefert "QueryStringValue" zurück?
-
Release Buffer hatte ich vergessen habs aber jtzte inegbaut geht trotzdem nicht egal wo.
Der Rückgabe Wert ist 243
-
XeXeS schrieb:
Der Rückgabe Wert ist 243
=> Es sind mehr Daten verfügbar.
-
Mehr als was ?
-
Mehr als Du Puffer bereitstellst (fazit mehr als 1024)...