<?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[Von char* zu unsigned char*]]></title><description><![CDATA[<p>Hi.<br />
Ich stehe gerade vor einem Problem das ich nicht gelöst kriege. Ich habe eine Signatur für eine Funktion im char* Format vorliegen, hier ist deren Inhalt:</p>
<pre><code class="language-cpp">&quot;\x56\x8B\xF1\x8B\x06\xFF\x90\xB8\x04\x00\x00\x8B\x86\xE8\x0D\x00\x00\x85\xC0\x74\x0E\x8B\x50\x18\x85\xD2\x74\x07\x8B\x48\x1C\x03\xCE\xFF\xD2&quot;
</code></pre>
<p>Problem ist: Ich brauch den Kram als unsigned char*. Ein einfaches casten geht nicht, da der Compiler die einzelnen Bytes nicht als char ansieht.<br />
Es muss also so aussehen (später):</p>
<pre><code class="language-cpp">unsigned char *pszSignatureFixed = {\x56, \x8B, \xF1, \x8B, \x06, ...};
</code></pre>
<p>Wie kriege ich das hin?<br />
Das funktioniert leider auch nicht:</p>
<pre><code class="language-cpp">for (unsigned int i = 0; i &lt; strlen(pszSignature); i += 4)
				{
					pszSignatureFixed[i] = 0x0 + pszSignature[i + 2] + pszSignature[i + 3];
				}
</code></pre>
<p>Gruß und Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247341/von-char-zu-unsigned-char</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 13:17:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247341.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Aug 2009 18:28:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 18:28:33 GMT]]></title><description><![CDATA[<p>Hi.<br />
Ich stehe gerade vor einem Problem das ich nicht gelöst kriege. Ich habe eine Signatur für eine Funktion im char* Format vorliegen, hier ist deren Inhalt:</p>
<pre><code class="language-cpp">&quot;\x56\x8B\xF1\x8B\x06\xFF\x90\xB8\x04\x00\x00\x8B\x86\xE8\x0D\x00\x00\x85\xC0\x74\x0E\x8B\x50\x18\x85\xD2\x74\x07\x8B\x48\x1C\x03\xCE\xFF\xD2&quot;
</code></pre>
<p>Problem ist: Ich brauch den Kram als unsigned char*. Ein einfaches casten geht nicht, da der Compiler die einzelnen Bytes nicht als char ansieht.<br />
Es muss also so aussehen (später):</p>
<pre><code class="language-cpp">unsigned char *pszSignatureFixed = {\x56, \x8B, \xF1, \x8B, \x06, ...};
</code></pre>
<p>Wie kriege ich das hin?<br />
Das funktioniert leider auch nicht:</p>
<pre><code class="language-cpp">for (unsigned int i = 0; i &lt; strlen(pszSignature); i += 4)
				{
					pszSignatureFixed[i] = 0x0 + pszSignature[i + 2] + pszSignature[i + 3];
				}
</code></pre>
<p>Gruß und Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1757981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1757981</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 09 Aug 2009 18:28:33 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:07:22 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Ein einfaches casten geht nicht, da der Compiler die einzelnen Bytes nicht als char ansieht.</p>
</blockquote>
<p>Doch, einfaches (reinterpret-)casten &quot;geht&quot;...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1757998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1757998</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:07:22 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:16:02 GMT]]></title><description><![CDATA[<p>Hi.<br />
Nein, dass geht nicht.</p>
<pre><code class="language-cpp">char *pszSignature = m_pSettings-&gt;getString(pszBaseName, &quot;signature&quot;);
unsigned char *pszSignatureFixed = new unsigned char[strlen(pszSignature) + 1];
pszSignatureFixed = reinterpret_cast&lt;unsigned char*&gt;(pszSignature);

Msg(&quot;Manuell eingegeben: %s\nUngecastet: %s\nGecastet: %s\n&quot;, (unsigned char*)&quot;\x56\x8B\xF1\x8B\x06\xFF\x90\xB8\x04\x00\x00\x8B\x86\xE8\x0D\x00\x00\x85\xC0\x74\x0E\x8B\x50\x18\x85\xD2\x74\x07\x8B\x48\x1C\x03\xCE\xFF\xD2&quot;, pszSignature, pszSignatureFixed);
</code></pre>
<pre><code>Maneull eingegeben: &lt;kryptische Zeichen, so wie ich es brauche&gt;
Ungecastet: \x56\x8B\xF1\x8B\x06\xFF\x90\xB8\x04\x00\x00\x8B\x86\xE8\x0D\x00\x00\x85\xC0\x74\x0E\x8B\x50\x18\x85\xD2\x74\x07\x8B\x48\x1C\x03\xCE\xFF\xD2
Gecastet: \x56\x8B\xF1\x8B\x06\xFF\x90\xB8\x04\x00\x00\x8B\x86\xE8\x0D\x00\x00\x85\xC0\x74\x0E\x8B\x50\x18\x85\xD2\x74\x07\x8B\x48\x1C\x03\xCE\xFF\xD2
</code></pre>
<p>~ Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758003</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:16:02 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:21:06 GMT]]></title><description><![CDATA[<p>stell doch die projektopionen so ein, das char unsigned behandelt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758006</guid><dc:creator><![CDATA[einstell0r]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:21:06 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:24:37 GMT]]></title><description><![CDATA[<p>Hi.<br />
Das geht schlecht da ich noch ein paar mehr char's habe und diese nicht als unsigned möchte.<br />
Die Datei die ich parse wird mittels Funktionen von VALVe ausgelesen (Spielehersteller) und dieser Parser liefert nur const char's zurück.</p>
<p>Gruß und Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758007</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:24:37 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:29:40 GMT]]></title><description><![CDATA[<p>Ich denke nicht, daß dein Problem wirklich mit dem Casten zu tun hat. Für mich sieht es eher so aus, als ob in deinem pszSignature der String schon genau wortwörtlich so drin steht, wie er am Ende ausgegeben wird, also mit &quot;echten&quot; Backslashes und Ziffern statt denn richtigen Zeichencodes. Und daran kann natürlich auch ein Cast nichts ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758010</guid><dc:creator><![CDATA[dooooomi]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:33:42 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Hi.<br />
Das geht schlecht da ich noch ein paar mehr char's habe und diese nicht als unsigned möchte.<br />
Die Datei die ich parse wird mittels Funktionen von VALVe ausgelesen (Spielehersteller) und dieser Parser liefert nur const char's zurück.</p>
<p>Gruß und Danke.</p>
</blockquote>
<p>du kannst signed davor schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758011</guid><dc:creator><![CDATA[einstell0r]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:33:42 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:40:17 GMT]]></title><description><![CDATA[<p>@ doooomi: Genau so ist es ja auch, dass ist doch mein Problem <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>
<p>~ Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758014</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 19:56:51 GMT]]></title><description><![CDATA[<p>Du musst keinen neuen Speicher mit new anfordern, sondern einfach den bestehenden anders interpretieren (reinterpret_cast).</p>
<pre><code class="language-cpp">char *pszSignature = m_pSettings-&gt;getString(pszBaseName, &quot;signature&quot;);
unsigned char *pszSignatureFixed = reinterpret_cast&lt;unsigned char*&gt;(pszSignature);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1758017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758017</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sun, 09 Aug 2009 19:56:51 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 20:05:17 GMT]]></title><description><![CDATA[<p>Bringt trotzdem nichts da dooomi's Annahme wohl korrekt ist.<br />
Trotzdem 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="🙂"
    /></p>
<p>Das liegt wohl daran, dass die Signatur in etwa so vorliegt:</p>
<pre><code class="language-cpp">pszSignature[0] = '\\';
pszSignature[1] = 'x';
pszSignature[2] = '5';
pszSignature[3] = '6';
// ...
</code></pre>
<p>Und nicht so:</p>
<pre><code class="language-cpp">pszSignature[0] = '\x56';
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758020</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 09 Aug 2009 20:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 20:18:54 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...
unsigned char *pszSignatureFixed = new unsigned char[strlen(pszSignature) + 1];
pszSignatureFixed = reinterpret_cast&lt;unsigned char*&gt;(pszSignature);
...
</code></pre>
<p>...</p>
</blockquote>
<pre><code class="language-cpp">char* pszSignature = {&quot;\x56\x8B\xF1\x8B\x06&quot;};
  unsigned char* pszSignatureFixed = new unsigned char[strlen(pszSignature) + 1];
  // pszSignatureFixed = reinterpret_cast&lt;unsigned char*&gt;(pszSignature);//  Fehler! 
  // Es ist Quatsch den Zeiger den new geliefert hat zu überschreiben.
  memcpy(pszSignatureFixed, pszSignature, strlen(pszSignature)+1); // ist nach new folgerichtig 
                                                                   // und beinhaltet nebenbei den Cast.
</code></pre>
<p><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/1758024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758024</guid><dc:creator><![CDATA[egon2]]></dc:creator><pubDate>Sun, 09 Aug 2009 20:18:54 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Sun, 09 Aug 2009 20:45:46 GMT]]></title><description><![CDATA[<p>Hi.<br />
Danke für den Code, aber dennoch funktioniert das nicht, da die Bytes nicht mehr als Bytes vorliegen <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>
<p>Siehe meinen letzten Post.</p>
<p>Gruß und Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758031</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 09 Aug 2009 20:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 09:54:44 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Danke für den Code, aber dennoch funktioniert das nicht, da die Bytes nicht mehr als Bytes vorliegen <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>
</blockquote>
<p>Dann solltest Du ermitteln, warum die Bytes nicht mehr als Bytes vorliegen. Am Cast kann es nicht liegen, insofern ist die Frage beantwortet.</p>
<p>Und um die Folgefrage zu beantworten, hast Du bislang nicht genug Infos geliefert.</p>
<p>EDIT: Oder suchst Du jetzt eine Möglichkeit, den als '\', 'x', '5', '4' vorliegenden String in ein (unsigned) char mit dem Wert '\x45' umzuwandeln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758167</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 10 Aug 2009 09:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 13:21:30 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>EDIT: Oder suchst Du jetzt eine Möglichkeit, den als '\', 'x', '5', '4' vorliegenden String in ein (unsigned) char mit dem Wert '\x45' umzuwandeln?</p>
</blockquote>
<p>Ist das ein Byte=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758295</guid><dc:creator><![CDATA[bite the byte]]></dc:creator><pubDate>Mon, 10 Aug 2009 13:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 13:38:39 GMT]]></title><description><![CDATA[<p>Hi.<br />
Ja, genau das suche ich @ LordJaxom.<br />
Ich dachte ihr habt das bereits verstanden, tut mir leid wenn ich das nicht ordentlich genug erklärt habe.</p>
<p>Gruß und Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758307</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 10 Aug 2009 13:38:39 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 14:37:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* s = &quot;\x45\x55\56\57\FF&quot;;

	while (*s)
		printf(&quot;%X&quot;, *s++);
</code></pre>
<p>und wo ist das problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758347</guid><dc:creator><![CDATA[hex0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 14:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 14:42:34 GMT]]></title><description><![CDATA[<p>Dass dies das C++ Forum ist, geh nach C mit deinem dreckigen prntffffff <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758353</guid><dc:creator><![CDATA[C++0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 14:42:34 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:10:11 GMT]]></title><description><![CDATA[<p>Hi.<br />
Hab mal das hier gebastelt, das liefert aber komplett falsche Ergebnisse <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=":/"
      alt="😕"
    /></p>
<pre><code class="language-cpp">char *pszSignatureFixed = new char[strlen(pszSignature) + 1];
				unsigned short iLengthxx = strlen(pszSignature);

				for (unsigned short i = 0; i &lt; iLengthxx; i += 4)
				{
					if (i + 4 &lt; iLengthxx)
					{
						char *pszTemp = new char[4];
						sprintf(pszTemp, &quot;\\x%i%i&quot;, pszSignature[i + 2], pszSignature[i + 3]);
						sprintf(pszSignatureFixed, &quot;%x%x&quot;, pszSignatureFixed, pszTemp);

						delete[] pszTemp;
					}
				}
</code></pre>
<p>Gruß und Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758393</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:10:11 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:18:55 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Hi.<br />
Hab mal das hier gebastelt, das liefert aber komplett falsche Ergebnisse <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=":/"
      alt="😕"
    /></p>
<pre><code class="language-cpp">char *pszSignatureFixed = new char[strlen(pszSignature) + 1];
				unsigned short iLengthxx = strlen(pszSignature);

				for (unsigned short i = 0; i &lt; iLengthxx; i += 4)
				{
					if (i + 4 &lt; iLengthxx)
					{
						char *pszTemp = new char[4];
						sprintf(pszTemp, &quot;\\x%i%i&quot;, pszSignature[i + 2], pszSignature[i + 3]);
						sprintf(pszSignatureFixed, &quot;%x%x&quot;, pszSignatureFixed, pszTemp);

						delete[] pszTemp;
					}
				}
</code></pre>
<p>Gruß und Danke</p>
</blockquote>
<p>Beschreib mal in Worten, was der Code machen soll. So ist es ein wenig äh ... undurchsichtig, um es mal vorsichtig zu formulieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758397</guid><dc:creator><![CDATA[hex0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:18:55 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:27:23 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">char *pszTemp = new char[4];
</code></pre>
</blockquote>
<p>no comment. epic fail!</p>
<pre><code class="language-cpp">char pszTemp[4];
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758404</guid><dc:creator><![CDATA[no comment on this]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:32:45 GMT]]></title><description><![CDATA[<p>Hab mir halt folgendes gedacht:</p>
<pre><code class="language-cpp">// Speicher freimachen
char *pszSignatureFixed = new char[strlen(pszSignature) + 1];
// Länge der Signatur (vom String her)
unsigned short iLengthxx = strlen(pszSignature);

// Durchlaufen von jedem Abschnitt ab \, also i von 0-3 wäre \x56, 4-7 wäre \x8B usw
for (unsigned short i = 0; i &lt; iLengthxx; i += 4)
{
    // Nur wenn i + 4 &lt; als Länge ist (sonst Crash)
    if (i + 4 &lt; iLengthxx)
    {
        // Speicher freimachen
        char *pszTemp = new char[4];
        // Abschnitt zu einem \x&lt;i + 2&gt;&lt;i + 3&gt; zusammenfügen, wenn i = 0 wäre es \x56
        sprintf(pszTemp, &quot;\\x%i%i&quot;, pszSignature[i + 2], pszSignature[i + 3]);
        // Nun zu pszSignatureFixed den String als Byte hinzufügen durch %x in sprintf
        sprintf(pszSignatureFixed, &quot;%x%x&quot;, pszSignatureFixed, pszTemp);

        // Speicher freigeben
        delete[] pszTemp;
    }
}
</code></pre>
<p>EDIT: Wieso sollte das ein fail sein?!<br />
EDIT2: Oh man ^^ In Python wäre das mit einem binascii.unhexlify einfach getan <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=":/"
      alt="😕"
    /></p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758409</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:32:45 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:46:24 GMT]]></title><description><![CDATA[<p>hex0r schrieb:</p>
<blockquote>
<p>theliquidwave schrieb:</p>
<blockquote>
<p>Hi.<br />
Hab mal das hier gebastelt, das liefert aber komplett falsche Ergebnisse <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=":/"
      alt="😕"
    /></p>
<pre><code class="language-cpp">char *pszSignatureFixed = new char[strlen(pszSignature) + 1];
				unsigned short iLengthxx = strlen(pszSignature);

				for (unsigned short i = 0; i &lt; iLengthxx; i += 4)
				{
					if (i + 4 &lt; iLengthxx)
					{
						char *pszTemp = new char[4];
						sprintf(pszTemp, &quot;\\x%i%i&quot;, pszSignature[i + 2], pszSignature[i + 3]);
						sprintf(pszSignatureFixed, &quot;%x%x&quot;, pszSignatureFixed, pszTemp);

						delete[] pszTemp;
					}
				}
</code></pre>
<p>Gruß und Danke</p>
</blockquote>
<p>Beschreib mal in Worten, was der Code machen soll. So ist es ein wenig äh ... undurchsichtig, um es mal vorsichtig zu formulieren.</p>
</blockquote>
<p>Duju wanna want sowas hier? Guggsu brazza:</p>
<pre><code class="language-cpp">string str;
	char* s = &quot;\x41\x42\x43\x2D\x4B\x6F\x6D\x70\x6C\x69\x63\x61\x74\x30\x72&quot;;
	while(*s)
		str += *s++;
	cout &lt;&lt; str &lt;&lt; endl;
</code></pre>
<p><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/1758420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758420</guid><dc:creator><![CDATA[ABC-Komplicat0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:46:24 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:49:33 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Hab mir halt folgendes gedacht:</p>
<pre><code class="language-cpp">// Speicher freimachen
char *pszSignatureFixed = new char[strlen(pszSignature) + 1];
// Länge der Signatur (vom String her)
unsigned short iLengthxx = strlen(pszSignature);

// Durchlaufen von jedem Abschnitt ab \, also i von 0-3 wäre \x56, 4-7 wäre \x8B usw
for (unsigned short i = 0; i &lt; iLengthxx; i += 4)
{
    // Nur wenn i + 4 &lt; als Länge ist (sonst Crash)
    if (i + 4 &lt; iLengthxx)
    {
        // Speicher freimachen
        char *pszTemp = new char[4];
        // Abschnitt zu einem \x&lt;i + 2&gt;&lt;i + 3&gt; zusammenfügen, wenn i = 0 wäre es \x56
        sprintf(pszTemp, &quot;\\x%i%i&quot;, pszSignature[i + 2], pszSignature[i + 3]);
        // Nun zu pszSignatureFixed den String als Byte hinzufügen durch %x in sprintf
        sprintf(pszSignatureFixed, &quot;%x%x&quot;, pszSignatureFixed, pszTemp);

        // Speicher freigeben
        delete[] pszTemp;
    }
}
</code></pre>
</blockquote>
<p><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/1758424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758424</guid><dc:creator><![CDATA[hex0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:49:33 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:52:07 GMT]]></title><description><![CDATA[<p>ABC-Komplicat0r schrieb:</p>
<blockquote>
<p>Duju wanna want sowas hier? Guggsu brazza:</p>
<pre><code class="language-cpp">string str;
	char* s = &quot;\x41\x42\x43\x2D\x4B\x6F\x6D\x70\x6C\x69\x63\x61\x74\x30\x72&quot;;
	while(*s)
		str += *s++;
	cout &lt;&lt; str &lt;&lt; endl;
</code></pre>
<p><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>
</blockquote>
<p>Sowie ich das verstanden habe, hat er diesen Fall:</p>
<pre><code class="language-cpp">char* s = &quot;\\x41\\x42\\x43\\x2D\\x4B\\x6F\\x6D\\x70\\x6C\\x69\\x63\\x61\\x74\\x30\\x72&quot;;
</code></pre>
<p>Also in dem char[] steht wirklich &quot;\x41&quot; statt &quot;A&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758428</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:52:20 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>EDIT2: Oh man ^^ In Python wäre das mit einem binascii.unhexlify einfach getan <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=":/"
      alt="😕"
    /></p>
</blockquote>
<pre><code class="language-cpp">char* s = &quot;\x41\x42\x43\x2D\x4B\x6F\x6D\x70\x6C\x69\x63\x61\x74\x30\x72&quot;;
	string unhexlificat0r(s);
	cout &lt;&lt; unhexlificat0r &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1758429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758429</guid><dc:creator><![CDATA[unhexlificat0r]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:52:20 GMT</pubDate></item><item><title><![CDATA[Reply to Von char* zu unsigned char* on Mon, 10 Aug 2009 16:54:53 GMT]]></title><description><![CDATA[<p>noch mal auf deutsch:</p>
<p>du willst aus nem '\0xAB' ein 'A' 'B' machen, wobei A und B beliebige Zeichen sind!?</p>
<p>also z.bsp.<br />
\0xAB\0xCD\0xEF<br />
-&gt; ABCDEF</p>
<p>richtig?</p>
<p>falls ja z.bsp. mittels std::string und std::find + std::string::erase<br />
bzw std::string und std::string::substring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1758431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1758431</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 10 Aug 2009 16:54:53 GMT</pubDate></item></channel></rss>