<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Registryeintraege schreiben, fehlende hex zeichen]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>ist mein erster beitrag und ich hoffe ich hab ihn an die richtige Stelle gepostet...</p>
<p>Ich programmiere eine ISAPI Erweiterung mit embedded Visual C++, und zwar für ein Windows CE Gerät.</p>
<p>Das schreiben des Registryeintrages funktioniert, jedoch sieht der Key nicht ganz so aus wie er von den Windows CE Einstellungen geschrieben wird.</p>
<p>Mein KEY:<br />
&quot;IpAddress&quot;=hex(7):\<br />
31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33</p>
<p>Sollte aber so aussehen, geschrieben durch die Windows CE Einstellungen:<br />
&quot;IpAddress&quot;=hex(7):\<br />
31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33,00,00</p>
<p>Wenn diese Nullen fehlen dann wird unter Windows CE in den Einstellungen auch eine falsche Ip angezeigt. Anstatt &quot;123.123.123.123&quot; steht da dann nur noch &quot;0.123.123.123&quot;.</p>
<p>Wie bekomme ich diese Nullen in meinen Key?</p>
<p>Grüße<br />
Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189540/registryeintraege-schreiben-fehlende-hex-zeichen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 17:08:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189540.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Aug 2007 10:05:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 10:05:09 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>ist mein erster beitrag und ich hoffe ich hab ihn an die richtige Stelle gepostet...</p>
<p>Ich programmiere eine ISAPI Erweiterung mit embedded Visual C++, und zwar für ein Windows CE Gerät.</p>
<p>Das schreiben des Registryeintrages funktioniert, jedoch sieht der Key nicht ganz so aus wie er von den Windows CE Einstellungen geschrieben wird.</p>
<p>Mein KEY:<br />
&quot;IpAddress&quot;=hex(7):\<br />
31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33</p>
<p>Sollte aber so aussehen, geschrieben durch die Windows CE Einstellungen:<br />
&quot;IpAddress&quot;=hex(7):\<br />
31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33,00,00</p>
<p>Wenn diese Nullen fehlen dann wird unter Windows CE in den Einstellungen auch eine falsche Ip angezeigt. Anstatt &quot;123.123.123.123&quot; steht da dann nur noch &quot;0.123.123.123&quot;.</p>
<p>Wie bekomme ich diese Nullen in meinen Key?</p>
<p>Grüße<br />
Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344165</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Tue, 14 Aug 2007 10:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 11:02:50 GMT]]></title><description><![CDATA[<p>Die nullen an deinen Key mit ranhängen und in die Registry schreiben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Bei Hex Zahlen kannst du nur führende nullen weglassen. Das du die letzten nullen vergessen hast ist von mir natürlich nur eine Vermutung da du keinen Code oder sonstiges gepostet hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344196</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:02:50 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 11:25:09 GMT]]></title><description><![CDATA[<p>hi<br />
also dies ist mein Code:</p>
<pre><code>LONG iSuccess = RegCreateKeyEx( HKEY_LOCAL_MACHINE, lpstrKey, 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &amp;hKey,lpdwDisp); 

if(iSuccess == ERROR_SUCCESS)   { 
      lpstrSubkey = L&quot;IpAddress&quot;; 
      MultiByteToWideChar(CP_ACP, 0, NetValueArray[queryCounter], -1,  lpstrSubkeyValue, sizeof(lpstrSubkeyValue)); 
/****    WRITE A HEX VALUE IN REGISTRY    ****/ 
     DWORD dwDispHex = 0; 
     LPDWORD lpdwDispHex = &amp;dwDispHex; 

      iSuccess = RegCreateKeyEx( HKEY_LOCAL_MACHINE, lpstrKey, 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &amp;hKey,lpdwDispHex); 
      if(iSuccess == ERROR_SUCCESS) 
         { 
        RegSetValueEx(hKey, lpstrSubkey, 0, REG_MULTI_SZ, 
(LPBYTE)lpstrSubkeyValue, (strlen(NetValueArray[queryCounter])*2)+1); 
         } 
   }
</code></pre>
<p>Habe eben noch ein +1 an strlen von RegSetValueEx rangehaengt, dadurch sieht mein Key dann so aus:<br />
&quot;IpAddress&quot;=hex(7):\<br />
31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33,00</p>
<p>Nun hat er diese 2 Nullen, und unter den WinCE Einstellungen wird es nun auch richtig angezeigt.<br />
Aber es wird ja schon einen Grund geben warum da normal &quot;00,00&quot; steht, oder sollte mir das etwa egal sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344215</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:25:09 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 11:58:33 GMT]]></title><description><![CDATA[<p>Hab in der MSDN Dokumentation (<a href="http://msdn2.microsoft.com/en-us/library/ms724911.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms724911.aspx</a>) für RegQueryValueEx noch einen kleinen Satz gefunden:</p>
<p>Note that REG_MULTI_SZ strings should have two null-terminating characters !!</p>
<p>Ok einen habe ich schon!<br />
Wie bekomme ich noch den zweiten, etwa einfach &quot;\0&quot; an meinen String ranhängen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344240</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 12:43:31 GMT]]></title><description><![CDATA[<p>ja probier mal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344294</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:43:31 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 12:54:06 GMT]]></title><description><![CDATA[<p>Natürlich bin ich am herum probieren...</p>
<pre><code>PSTR TestIt = &quot;&quot;;
strcat(TestIt, NetValueArray[queryCounter]);
strcat(TestIt, &quot;\0&quot;);
</code></pre>
<p>führt aber zum selben Ergebnis:</p>
<p>IpAddress&quot;=hex(7):\<br />
31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33,00</p>
<p>genauso wie 2mal &quot;strcat(TestIt, &quot;\0&quot;);&quot; ausführen!</p>
<p>Gibt es vielleicht Funktionen mit denen das gehen sollte?<br />
Ich möchte ja keine 1zu1 Quellcode abtipperei, aber ein wink in die richtige Richtung wäre echt klasse...<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344305</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:54:06 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 14:10:06 GMT]]></title><description><![CDATA[<p>Hm... wie sind denn die Werte in NetValueArray[queryCounter] eingetragen? Vieleicht kannst (oder solltest) du hier schon die beiden &quot;00&quot; hinzufügen bevor du sie mit MultiByteToWideChar in deinen String kopierst.</p>
<p>Ich weis jetzt nicht genau &quot;wie&quot; der String in lpstrSubkeyValue formatiert ist. Aber vieleicht hilft ein einfaches</p>
<pre><code>strcat(lpstrSubkeyValue , &quot;,00,00\0\0&quot;);
</code></pre>
<p>ich weis aber nicht ob der Code so funktioniert.</p>
<p>Apropo WinCE:<br />
Hast du schonmal mit LoadIntChainHandler() gearbeitet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344378</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Tue, 14 Aug 2007 14:10:06 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 14:48:45 GMT]]></title><description><![CDATA[<p>Definition des Arrays: PSTR NetValueArray[6];</p>
<p>Wenn ich vor der Umwandlung mit MultiByteToWideChar, deinen Code ausführe, dann steht hinter meinem RegistryKey noch ein Komma, jedoch gibt es keinerlei &quot;00,00&quot;!</p>
<p>Nach der Umwandlung bekomme ich nen Fehler:</p>
<pre><code>strcat( lpstrSubkeyValue, L&quot;,00,00\0\0&quot;);
</code></pre>
<p>error C2664: 'strcat' : cannot convert parameter 1 from 'unsigned short [261]' to 'char *'</p>
<p>Hab das ganze auch schon mal mit sprintf versucht, führte aber auch nicht zum Erfolg. Was anderes fällt mir sonst nicht ein...</p>
<p>LoadIntChainHandler() hab ich noch nicht gebraucht! ist aber auch mein erstes Windows CE Projekt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344406</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Tue, 14 Aug 2007 14:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Tue, 14 Aug 2007 18:00:50 GMT]]></title><description><![CDATA[<p>ok lpstrSubkeyValue ist wahrscheinlich vom typ wchar_t. Da musst du dann wcscat statt strcat anwenden. achte auch darauf das du genug speicher reserviert hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344516</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Tue, 14 Aug 2007 18:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 06:59:32 GMT]]></title><description><![CDATA[<p>Weißt du, wie strlen() arbeitet? Das zählt einfach die Zeichen, bis es auf das erste \0 Byte trifft. Da allerdings die Nullen bei dir zu den Daten gehören, schneidest du dir damit selber den Rest der Daten ab.</p>
<p>Lösung: Du kannst die &quot;Länge&quot; des einzutragenden Registry-Strings <em>nicht</em> mit strlen() ermitteln, sondern mußt dir selber merken, wie lang er ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344733</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Aug 2007 06:59:32 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 08:16:58 GMT]]></title><description><![CDATA[<p>moin</p>
<p>Danke das mit wcscat bringt es nahezu. Also bei einer langen IP, 123.123.123.123, ist der RegKey immer richtig. Wenn die Ip jedoch von der länge gegen 1.1.1.1 geht dann steht meistens nicht &quot;00,00&quot; sondern &quot;00,undnochetwasanderes&quot;!? Kann auch schon bei 12.12.12.1 passieren.</p>
<pre><code>WCHAR ZeroValue[MAX_PATH+1];
WCHAR WriteValue[MAX_PATH+1];
WCHAR lpstrSubkeyValue[MAX_PATH+1];
//  IP adresse setzen
lpstrSubkey = L&quot;IpAddress&quot;;
MultiByteToWideChar(CP_ACP, 0, NetValueArray[queryCounter], -1, lpstrSubkeyValue, sizeof(lpstrSubkeyValue));
MultiByteToWideChar(CP_ACP, 0, &quot;\0&quot;, -1, ZeroValue, sizeof(ZeroValue));

DWORD dwDispHex = 0;
LPDWORD lpdwDispHex = &amp;dwDispHex;

iSuccess = RegCreateKeyExW( HKEY_LOCAL_MACHINE, lpstrKey, 0L,NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &amp;hKey,lpdwDispHex);
if(iSuccess == ERROR_SUCCESS)
{
   wcscpy(WriteValue, lpstrSubkeyValue);
   wcscat(WriteValue, ZeroValue);
   RegSetValueEx(hKey, lpstrSubkey, 0, REG_MULTI_SZ, (LPBYTE)WriteValue, (strlen(NetValueArray[queryCounter])*2)+3);
}
</code></pre>
<p>Ich denke mal das liegt irgendwie an meinen Längenangaben...<br />
Bei RegSetValueEx übergeb ich ja die Länge des eigenlichen Ip-Strings vor der ganzen Umwandlung, und dann noch +3 dazu, 1 fürs erste &quot;\0&quot; und 2 fürs zweite &quot;\0&quot;. Wenn ich nämlich ein +2 hinzufüge dann bekomme ich immer gute Werte aber nur mit einem &quot;00&quot;, deshalb +3!<br />
Seh ich das soweit richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344771</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Wed, 15 Aug 2007 08:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 08:23:47 GMT]]></title><description><![CDATA[<p>Was steht eigentlich in deinem NetValue-Array? Die IP-Adresse in String-Form? Oder die binär (4 Byte)? Und hat dein anzugebender Registry-Eintrag eine feste Länge?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344774</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Aug 2007 08:23:47 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 08:33:25 GMT]]></title><description><![CDATA[<p>Das Array ist so definiert: PSTR NetValueArray[6];</p>
<p>In das Array schreibe ich die IpAdressen die ich aus dem QueryString des Browsers auslese.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344781</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Wed, 15 Aug 2007 08:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 08:37:23 GMT]]></title><description><![CDATA[<p>mrkorn schrieb:</p>
<blockquote>
<p>In das Array schreibe ich die IpAdressen die ich aus dem QueryString des Browsers auslese.</p>
</blockquote>
<p>Das heißt, in Testform?</p>
<p>PS: Willst du immer genau drei 0-Werte am Ende des Eintrags haben? Oder hängt die Anzahl davon ab, wie lang die Adressangabe ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344784</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Aug 2007 08:37:23 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 08:52:12 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>mrkorn schrieb:</p>
<blockquote>
<p>In das Array schreibe ich die IpAdressen die ich aus dem QueryString des Browsers auslese.</p>
</blockquote>
<p>Das heißt, in Testform?</p>
<p>PS: Willst du immer genau drei 0-Werte am Ende des Eintrags haben? Oder hängt die Anzahl davon ab, wie lang die Adressangabe ist?</p>
</blockquote>
<p>In Testform? wie meinst du das?</p>
<p>Ein durch die Windows Ce Einstellungen geschriebener Key mit Ip=123.123.123.123 sieht so aus:</p>
<pre><code>&quot;IP&quot;=hex(7):\
      31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33,00,00
</code></pre>
<p>Ein durch die Windows Ce Einstellungen geschriebener Key mit Ip=1.1.1.1 sieht so aus:</p>
<pre><code>&quot;IP&quot;=hex(7):\
      31,2e,31,2e,31,2e,31,00,00
</code></pre>
<p>Wenn ich jetzt nur meinen Wert nehme und schreibe habe ich nur:</p>
<pre><code>&quot;IP&quot;=hex(7):\
      31,2e,31,2e,31,2e,31,00
</code></pre>
<p>Die MSDN Doku sagt aber das Keys als REG_MULTI_SZ geschrieben immer 00,00 am Ende brauchen!<br />
Dies liegt daran das auch mehrere Ips, z.B. in DNS(primary,secondary) gespeichert werden können. Dies sieht dann so aus:</p>
<pre><code>&quot;DNS&quot;=hex(7):\      31,32,33,2e,31,32,33,2e,31,32,33,2e,31,32,33,00,31,32,34,2e,31,32,34,2e,31,\
      32,34,2e,31,32,34,00,00
</code></pre>
<p>Getrennt werden die einzelnen Keys durch ein einfaches 00 und abgeschlossen wird mit 00,00.</p>
<p>Deshalb versuche ich hier noch ein zusätzliches &quot;\0&quot; an meinen Key der eine beliebige länge hat ranzuhängen und zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344796</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Wed, 15 Aug 2007 08:52:12 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 09:01:54 GMT]]></title><description><![CDATA[<p>mrkorn schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>mrkorn schrieb:</p>
<blockquote>
<p>In das Array schreibe ich die IpAdressen die ich aus dem QueryString des Browsers auslese.</p>
</blockquote>
<p>Das heißt, in Testform?</p>
<p>PS: Willst du immer genau drei 0-Werte am Ende des Eintrags haben? Oder hängt die Anzahl davon ab, wie lang die Adressangabe ist?</p>
</blockquote>
<p>In Testform? wie meinst du das?</p>
</blockquote>
<p>Ja, auch mir passieren gelegentlich Tipfehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> das sollte &quot;Textform&quot; heißen.</p>
<p>*schaut sich die Beispiele an* Und nach dem letzten Beitrag kann ich die Frage mit 'ja' beantworten.</p>
<blockquote>
<p>Deshalb versuche ich hier noch ein zusätzliches &quot;\0&quot; an meinen Key der eine beliebige länge hat ranzuhängen und zu schreiben.</p>
</blockquote>
<p>Da hast du dein Problem auch schon - '\0' wird von C als Stringende-Marke interpretiert, deshalb bekommst du Probleme, wenn du C-String-Funktionen (strcat(), strlen() etc) auf etwas loslässt, was Nullwerte als normalen Text enthält. Da mußt du vermutlich direkt in dein Ausgabe-Array schreiben und die fehlende(n) Nullen eintragen:</p>
<pre><code class="language-cpp">wcscpy(WriteValue, lpstrSubkeyValue);
int len=strlen(NetValueArray[queryCountertrlen]);
WriteValue[len]=WriteValue[len+1]=L'\0';
RegSetValueEx(hKey, lpstrSubkey, 0, REG_MULTI_SZ, (LPBYTE)WriteValue, 2*(len+2));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1344802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344802</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Aug 2007 09:01:54 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 09:21:40 GMT]]></title><description><![CDATA[<p>Tja wie soll ichs sagen.<br />
Funktioniert Perfekt, Danke. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Hab schnelle einige IPs geschrieben und keiner ist mehr aus der Reihe gefallen, da alle mit 00,00 enden!</p>
<p>Hast du mir noch nen Tip wie ich das dann noch mit dem DNS(primary,secondary) Key zusammenfügen machen kann? Dürfte ja ähnlich gehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344813</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Wed, 15 Aug 2007 09:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 09:25:22 GMT]]></title><description><![CDATA[<p>Manuell mit strcpy() bzw. wcscpy() - du übergibst als Zielposition 'WriteValue+len**+1**' (das ist die Position hinter der Schluß/Trennmarke \0) und ermittelst die Gesamtlänge des Strings manuell als strlen(primary)+1/*Trenner*/+strlen(secondary)+2/*Abschluß*/.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344814</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Aug 2007 09:25:22 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 09:57:47 GMT]]></title><description><![CDATA[<p>guat probier ich aus, werd später die Lösung oder vielleicht noch ne Frage posten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344843</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Wed, 15 Aug 2007 09:57:47 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 11:49:50 GMT]]></title><description><![CDATA[<p>Also so ganz bekomme ich es nicht hin...<br />
Wenn ich mit &quot;wcscat(WriteValue, lpstrSubkeyValueDNSSecondary);&quot; die zweite IP ranhängen möchte, dann wird damit &quot;\0&quot; überschrieben und ich hab zwei aneinander hängende IPs...</p>
<pre><code>WCHAR lpstrSubkeyValueDNSPrimary[MAX_PATH+1];
WCHAR lpstrSubkeyValueDNSSecondary[MAX_PATH+1];

int len=strlen(NetValueArray[queryCounter]);
int len2=strlen(NetValueArray[queryCounter+1]);
int lenAll;

MultiByteToWideChar(CP_ACP, 0, NetValueArray[queryCounter], -1, lpstrSubkeyValueDNSPrimary, sizeof(lpstrSubkeyValue));
MultiByteToWideChar(CP_ACP, 0, NetValueArray[queryCounter+1], -1, lpstrSubkeyValueDNSSecondary, sizeof(lpstrSubkeyValue));

wcscpy(WriteValue, lpstrSubkeyValueDNSPrimary);
[b]// hier vermisse ich später mein &quot;\0&quot;[/b]
// muss hier &quot;eigentlich&quot; nicht hin da ja schon ein &quot;\0&quot; im String steht
// --&gt; WriteValue[len]=WriteValue[len+1]=L'\0'; &lt;-- //
wcscat(WriteValue, lpstrSubkeyValueDNSSecondary);
WriteValue[len+1+len2]=WriteValue[len+1+len2+1]=L'\0';
lenAll = (len+1+len2+1);

iSuccess = RegCreateKeyEx( HKEY_LOCAL_MACHINE, lpstrKey, 0L,NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &amp;hKey,lpdwDispHex);
if(iSuccess == ERROR_SUCCESS)
{
	RegSetValueEx(hKey, lpstrSubkey, 0, REG_MULTI_SZ, (LPBYTE)WriteValue, 2*(lenAll));
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1344939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344939</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Wed, 15 Aug 2007 11:49:50 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 11:56:39 GMT]]></title><description><![CDATA[<p>Ja, \0 ist immer noch das Stringende - und damit auch der Ansatzpunkt, wo strcat() ansetzt. Da du eine Stelle weiter hinten anfangen willst, kannst du es hier nicht verwenden:</p>
<pre><code class="language-cpp">wcscpy(WriteValue, lpstrSubkeyValueDNSPrimary);
wcscpy(WriteValue+len+1, lpstrSubkeyValueDNSSecondary);
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1344951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344951</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Aug 2007 11:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Registryeintraege schreiben, fehlende hex zeichen on Wed, 15 Aug 2007 12:21:05 GMT]]></title><description><![CDATA[<p>ahh so gibt man da die länge mit!</p>
<p>ich habs mit sowas probiert, und das geht nicht:</p>
<pre><code class="language-cpp">wcscpy(WriteValue[len+1], lpstrSubkeyValueDNSSecondary);
</code></pre>
<p>Danke vielmals, sollte jetzt alles sein, was das schreiben von Registry Einträgen anbelangt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344979</guid><dc:creator><![CDATA[mrkorn]]></dc:creator><pubDate>Wed, 15 Aug 2007 12:21:05 GMT</pubDate></item></channel></rss>