[C++] Fehler beim Schreiben in Registrierung

Peter

Lt. Commander
Registriert
Mai 2001
Beiträge
1.957
Fehler beim Schreiben in Registrierung

CString& strValue, CString& strSubKey, LONG& nSpan <- werden als Parameter einer Methode übergeben

HKEY hKey = NULL;
TCHAR szBuff[255] = {0};
itoa(nSpan, szBuff, 10);
DWORD dwLen = sizeof(szBuff);

if (RegCreateKey(HKEY_LOCAL_MACHINE, strSubKey, &hKey) == ERROR_SUCCESS)
{ RegSetValueEx(hKey, strValue, 0, REG_SZ, (LPBYTE)szBuff, dwLen); }

-----

Wenn ich z.B. nSpan = "50000" habe, steht nach dem Schreiben des Wertes in die Registrierung folgendes an entsprechender Stelle: "50000...". Woran kann es liegen, dass an den String 3 Punkte angehängt werden?
 
An so etwas habe ich zuerst auch gedacht und das getestet.
Der Terminator '\0' ist korrekt in dem String vorhanden. Sowohl im Trace wie auch in einer MessageBox wird der String korrekt angegeben.
 
Hi,

MS verwendet beim Schreiben in die Reg UCHAR (Auszug aus der Hilfe):

HKEY hk;
DWORD dwData;
UCHAR szBuf[80];

/*
* Add your source name as a subkey under the Application
* key in the EventLog service portion of the registry.
*/

if (RegCreateKey(HKEY_LOCAL_MACHINE,
"SYSTEM\\CurrentControlSet\\Services\
\\EventLog\\Application\\SamplApp",
&hk))
ErrorExit("could not create registry key");

/* Set the Event ID message-file name. */

strcpy(szBuf, "%SystemRoot%\\System\\SamplApp.dll");

/* Add the Event ID message-file name to the subkey. */


if (RegSetValueEx(hk, /* subkey handle */
"EventMessageFile", /* value name */
0, /* must be zero */
REG_EXPAND_SZ, /* value type */
(LPBYTE) szBuf, /* address of value data */
strlen(szBuf) + 1)) /* length of value data */
ErrorExit("could not set event message file");

/* Set the supported types flags. */


dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE |
EVENTLOG_INFORMATION_TYPE;

if (RegSetValueEx(hk, /* subkey handle */
"TypesSupported", /* value name */
0, /* must be zero */
REG_DWORD, /* value type */
(LPBYTE) &dwData, /* address of value data */
sizeof(DWORD))) /* length of value data */

ErrorExit("could not set supported types");

RegCloseKey(hk);

Schau mal ob dir das weiterhilft.

Gruß

Toaster
 
Zurück
Oben