<?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[Registry-Values Problem]]></title><description><![CDATA[<p>Hi Leute,<br />
Ich habe mal das Beispiel aus der MSDN zum auslesen der Registry-Untereinträge in ein Projekt eingefügt (<a href="http://msdn2.microsoft.com/en-us/library/ms724256.aspx" rel="nofollow">MSDN</a>). Das funktioniert auch soweit einwandfrei.<br />
Doch wenn ich einen Buffer zum auslesen des Wertes einfüge dann kommt bei manchen Einträgen eine Access-Violation <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> .</p>
<pre><code class="language-cpp">if (cValues) 
    {
        printf( &quot;\nNumber of values: %d\n&quot;, cValues);

        for (i=0, retCode=ERROR_SUCCESS; i&lt;cValues; i++) 
        { 
            cchValue = MAX_VALUE_NAME; 
            achValue[0] = '\0'; 
            retCode = RegEnumValue(hKey, i, 
                achValue, 
                &amp;cchValue, 
                NULL, 
                NULL,
                lpData,      //&lt;-- hier 
                lpcbData);   //&lt;-- und hier

            if (retCode == ERROR_SUCCESS ) 
            { 
                _tprintf(TEXT(&quot;(%d) %s\n&quot;), i+1, achValue); 
            } 
        }
    }
</code></pre>
<p>Ich vermute dass das Programm nicht die nötigen Rechte hat um diese Werte auszulesen (korrigiert mich wenn ich falsch liege)<br />
und deshalb die Exception auftritt.<br />
So und nun zur Frage: Wie kann ich diese verhindern??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191030/registry-values-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 12:42:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191030.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Aug 2007 11:09:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Registry-Values Problem on Wed, 29 Aug 2007 13:49:50 GMT]]></title><description><![CDATA[<p>Hi Leute,<br />
Ich habe mal das Beispiel aus der MSDN zum auslesen der Registry-Untereinträge in ein Projekt eingefügt (<a href="http://msdn2.microsoft.com/en-us/library/ms724256.aspx" rel="nofollow">MSDN</a>). Das funktioniert auch soweit einwandfrei.<br />
Doch wenn ich einen Buffer zum auslesen des Wertes einfüge dann kommt bei manchen Einträgen eine Access-Violation <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> .</p>
<pre><code class="language-cpp">if (cValues) 
    {
        printf( &quot;\nNumber of values: %d\n&quot;, cValues);

        for (i=0, retCode=ERROR_SUCCESS; i&lt;cValues; i++) 
        { 
            cchValue = MAX_VALUE_NAME; 
            achValue[0] = '\0'; 
            retCode = RegEnumValue(hKey, i, 
                achValue, 
                &amp;cchValue, 
                NULL, 
                NULL,
                lpData,      //&lt;-- hier 
                lpcbData);   //&lt;-- und hier

            if (retCode == ERROR_SUCCESS ) 
            { 
                _tprintf(TEXT(&quot;(%d) %s\n&quot;), i+1, achValue); 
            } 
        }
    }
</code></pre>
<p>Ich vermute dass das Programm nicht die nötigen Rechte hat um diese Werte auszulesen (korrigiert mich wenn ich falsch liege)<br />
und deshalb die Exception auftritt.<br />
So und nun zur Frage: Wie kann ich diese verhindern??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354453</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Wed, 29 Aug 2007 13:49:50 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Wed, 29 Aug 2007 11:17:20 GMT]]></title><description><![CDATA[<p>Wohin verweisen denn lpData und lpcbData? Außerdem solltest du vor dem Aufruf dafür sorgen, daß *lpcbData wieder auf die Größe des Puffers gesetzt wird - der wird von der Funktion angepasst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354468</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Aug 2007 11:17:20 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Wed, 29 Aug 2007 11:23:22 GMT]]></title><description><![CDATA[<p>Ok danke das wird der fehler sein lpData verweist auf garnichts anstatt des Buffers.<br />
Danke, kanns aber noch nicht probieren<br />
CU XBert</p>
<p>EDIT: lpcbData ist doch der Buffer ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354471</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Wed, 29 Aug 2007 11:23:22 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Wed, 29 Aug 2007 12:12:18 GMT]]></title><description><![CDATA[<p>lpcbData<br />
A pointer to a variable that specifies the size of the buffer pointed to by the lpData parameter, in bytes. When the function returns, the variable reeives the number of bytes stored in the buffer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354523</guid><dc:creator><![CDATA[lolFinder]]></dc:creator><pubDate>Wed, 29 Aug 2007 12:12:18 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Wed, 29 Aug 2007 12:17:09 GMT]]></title><description><![CDATA[<p>Danke ich kann selber MSDN lesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354529</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Wed, 29 Aug 2007 12:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Wed, 29 Aug 2007 13:17:20 GMT]]></title><description><![CDATA[<p>Ja, was RegEnumValue() aus den Parametern macht, kann jeder nachlesen. Die Frage ist nur, was für Werte hast DU dort übergeben? (und das geht nicht aus deinem Code hervor).</p>
<p>PS: Falls du an der englischen Formulierung scheiterst: lpData ist ein Zeiger auf den Datenbuffer, lpcbData ist ein Zeiger auf ein int - in diesen mußt du vor dem Aufruf die Größe des Puffers eintragen und bekommst hinterher die Länge des rausgeschriebenen Registry-Eintrags reingepackt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354582</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Aug 2007 13:17:20 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Wed, 29 Aug 2007 13:25:06 GMT]]></title><description><![CDATA[<p>Danke aber ich scheitere nicht an der Übersetzung.<br />
Ich hab nur mein Programm gerade nicht in der Nähe und kann deshalb auch nicht nachschaun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354589</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Wed, 29 Aug 2007 13:25:06 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:05:45 GMT]]></title><description><![CDATA[<p>Morgen!<br />
Ich hab es gestern noch einmal probiert aber egal was ich mache ich mache es falsch. Es wird zwar jetzt kein Fehler mehr angezeigt aber dafür sonst auch nichts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>CU XBert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355046</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:05:45 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:10:20 GMT]]></title><description><![CDATA[<p>XBert schrieb:</p>
<blockquote>
<p>Ich hab es gestern noch einmal probiert aber egal was ich mache ich mache es falsch. Es wird zwar jetzt kein Fehler mehr angezeigt aber dafür sonst auch nichts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
</blockquote>
<p>Tja, und solange du CStolls Frage nicht beantwortest, wird sich daran wohl auch nichts ändern.</p>
<p>Es wäre übrigens klug, den Wert, auf den lpcbData zeigt, in der Schleife immer wieder neu zu setzen, denn der Aufruf setzt ihn auf die tatsächliche Größe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355049</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:10:20 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:17:25 GMT]]></title><description><![CDATA[<p>Ich weiß das die Folgende eine dumme Frage ist aber was meinst du mit Wert von lpcbData (lpcbData=1024???stimmt wohl nicht ).<br />
Ich sitz auf der Leitung <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355050</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:21:55 GMT]]></title><description><![CDATA[<p>XBert schrieb:</p>
<blockquote>
<p>Ich sitz auf der Leitung <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="😕"
    /></p>
</blockquote>
<p>Dann zeig doch endlich den relevanten Code, damit man dir helfen kann. Der Wert 1024 für lpcbData ist jedenfalls schlecht. Das muss ein Zeiger sein!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355051</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:21:55 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:25:27 GMT]]></title><description><![CDATA[<p>Es ist genau der code aus der MSDN nur mit den weiteren zwei Variablen lpData und lpcbData die beide leer sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355053</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:25:27 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:31:35 GMT]]></title><description><![CDATA[<p>XBert schrieb:</p>
<blockquote>
<p>Es ist genau der code aus der MSDN nur mit den weiteren zwei Variablen lpData und lpcbData die beide leer sind.</p>
</blockquote>
<p>Was sollen &quot;leere&quot; Variablen sein? NULL? Uninitialisiert? Man weiß es nicht, <strong>weil du deinen Code nicht zeigst!</strong></p>
<p>Willst du keine Hilfe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355055</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:31:35 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:35:29 GMT]]></title><description><![CDATA[<p>Sie sind Initialisiert aber haben noch keien Wert.</p>
<pre><code class="language-cpp">LPBYTE lpData;
LPDWORD lpcbData;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1355056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355056</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:35:29 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:38:59 GMT]]></title><description><![CDATA[<p>XBert schrieb:</p>
<blockquote>
<p>Sie sind Initialisiert aber haben noch keien Wert.</p>
</blockquote>
<p>Sie sind <strong>uninitialisiert</strong>. Diese Zeiger zeigen also irgendwo in den Speicher. Die Funktion versucht, dorthin zu schreiben, und das knallt.</p>
<p>Du musst ein hinreichend großes BYTE-Array und ein DWORD anlegen, in das DWORD die Größe des BYTE-Arrays schreiben und dann die <em>Adressen</em> der beiden übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355057</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:38:59 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:46:41 GMT]]></title><description><![CDATA[<p>Was versteht man unter Byte-Array ?</p>
<p>So?</p>
<pre><code class="language-cpp">Byte-Array = eine Zahl;
DWORD temp=&amp;Byte-Array;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1355062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355062</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:49:42 GMT]]></title><description><![CDATA[<p>XBert schrieb:</p>
<blockquote>
<p>Was versteht man unter Byte-Array ?</p>
</blockquote>
<p>Weißt du nicht, was ein Array ist?</p>
<pre><code class="language-cpp">BYTE dasIstEinByteArray[42];
</code></pre>
<p>XBert schrieb:</p>
<blockquote>
<pre><code class="language-cpp">DWORD temp=&amp;Byte-Array;
</code></pre>
</blockquote>
<p>In das DWORD soll die <em>Größe</em> des Arrays, nicht seine Adresse. Kann es sein, dass du noch ziemlich große Lücken bei den Grundlagen hast? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355065</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Registry-Values Problem on Thu, 30 Aug 2007 06:56:39 GMT]]></title><description><![CDATA[<p>Das fürchte ich auch aber das Byte vor dem Array hat mich verwirrt weil ich nur char-Arrays kenne.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355070</guid><dc:creator><![CDATA[XBert]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:56:39 GMT</pubDate></item></channel></rss>