ERROR_MORE_DATA obwohl genug Platz vorhanden ist
-
std::wstring registry_value; registry_value.resize(REGISTRY_VALUE_LENGTH); DWORD size = REGISTRY_VALUE_LENGTH; auto error = RegGetValueW(REGISTRY_HKEY, REGISTRY_PATH, REGISTRY_NAME, RRF_RT_ANY, 0, ®istry_value[0], &size); std::cout << "Error: " << error << std::endl;
Da bekomme ich immer ERROR_MORE_DATA zurückgegeben, auch wenn ich
registry_value.resize(10000)
mache ist das der Fall. Irgendjemand einen Rat?
-
Entscheidend ist alleine was in size drin steht!
-
size ist kleiner als
registry_value.size()
-
winapi schrieb:
size ist kleiner als
registry_value.size()
DWORD size = registry_value.size();
-
immer noch dergleiche fehler, dein code ist ja auch nicht anders als meiner nur anders geschrieben.
-
Es geht darum dass du für "RegGetValueW" eine andere Größe übergeben musst..
Das "resize" vergrößert nur den string! Deshalb nach dem resizen des string auf 10000 nochDWORD size = registry_value.size();
oder einfach REGISTRY_VALUE_LENGTH vergrößern...
-
DarkShadow44 schrieb:
Das "resize" vergrößert nur den string! Deshalb nach dem resizen des string auf 10000 noch
DWORD size = registry_value.size();
Hat er doch:
winapi schrieb:
std::wstring registry_value; registry_value.resize(REGISTRY_VALUE_LENGTH); DWORD size = REGISTRY_VALUE_LENGTH;
-
Belli schrieb:
Hat er doch:
winapi schrieb:
std::wstring registry_value; registry_value.resize(REGISTRY_VALUE_LENGTH); DWORD size = REGISTRY_VALUE_LENGTH;
Hat er nicht, aus
winapi schrieb:
auch wenn ich
registry_value.resize(10000)
mache
geht nicht hervor, dass er auch size 10000 zugewiesen hat.