<?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[CLSIDs generieren]]></title><description><![CDATA[<p>Ich schreibe gerade ein Programm bei dem ich mehrere CLSIDs brauche, die es natürlich noch nicht geben darf! Dis IDs sollten am besten so erstellt werden wie es dieses <a href="http://www.aboutvb.de/khw/artikel/khwcreateguid.htm" rel="nofollow">http://www.aboutvb.de/khw/artikel/khwcreateguid.htm</a> nette Tool macht. Kann mir jemand sagen wie man solche CLSIDs generiert???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/59778/clsids-generieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 18:57:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/59778.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Dec 2003 14:33:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 14:33:15 GMT]]></title><description><![CDATA[<p>Ich schreibe gerade ein Programm bei dem ich mehrere CLSIDs brauche, die es natürlich noch nicht geben darf! Dis IDs sollten am besten so erstellt werden wie es dieses <a href="http://www.aboutvb.de/khw/artikel/khwcreateguid.htm" rel="nofollow">http://www.aboutvb.de/khw/artikel/khwcreateguid.htm</a> nette Tool macht. Kann mir jemand sagen wie man solche CLSIDs generiert???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/424438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424438</guid><dc:creator><![CDATA[nirsaja]]></dc:creator><pubDate>Sun, 28 Dec 2003 14:33:15 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 14:57:56 GMT]]></title><description><![CDATA[<p>mal ganz blöd:<br />
du erstellst dir ein paar zufallszahlen: 1 mal 8-stellig, 3 mal 4 stellig und eine 12 stellige (oder 2 mal eine 6 stellige..)</p>
<p>dann wandelst du dir so deine Zahlen in eine Hex-Zahl um:</p>
<pre><code class="language-cpp">int foo = 461979;
	char Y[100];
	int xx = sprintf(Y,&quot;%x&quot;,foo);
	Y[xx] = '\0';

	cout &lt;&lt; &quot;\n&quot; &lt;&lt; Y &lt;&lt; endl;
</code></pre>
<p>(5-sek-schnell-prog-code)<br />
dann erstellst du dir die CLSID und prüfst ob es die schon gibt wenn ja neue generieren wenn nich dann schreib sie in die Registry.</p>
<p>Is nurmal so ne Idee aber wenn jemand was bessere hat oder meins totaler Schwachsinn ist bitte nicht hauen...</p>
<p>MfG [nick-der-oben-steht] :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/424452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424452</guid><dc:creator><![CDATA[duumi]]></dc:creator><pubDate>Sun, 28 Dec 2003 14:57:56 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 15:49:29 GMT]]></title><description><![CDATA[<p>Ja das mit Zufasllszahlen zu lösen war auch meine erste Idee, aber dann muss man ja immernoch testen, ob diese ID bereits existiert! Ich müsste also alle Einträge in HKEY_CLASSES_ROOT\CLSID überprüfen. Is dann garrantiert, dass es diese ID nicht schon gibt???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/424486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424486</guid><dc:creator><![CDATA[nirsaja]]></dc:creator><pubDate>Sun, 28 Dec 2003 15:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 16:44:40 GMT]]></title><description><![CDATA[<p>PSDK sagt zu CoCreateGuid:</p>
<blockquote>
<p>The CoCreateGuid function calls the RPC function UuidCreate, which creates a GUID, a globally unique 128-bit integer. Use the CoCreateGuid function when you need an absolutely unique number that you will use as a persistent identifier in a distributed <a href="http://environment.To" rel="nofollow">environment.To</a> a very high degree of certainty, this function returns a unique value – no other invocation, on the same or any other system (networked or not), should return the same value</p>
</blockquote>
<p>Also könnte es rein-theoretisch bei der Funktion von MS selbst scheinbar wohl doch passieren, dass es die CLSID schon gibt, aber die Wahrscheinlichkeit dass das der Fall ist scheint dabei sehr gering zu sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/424531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424531</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sun, 28 Dec 2003 16:44:40 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 19:26:01 GMT]]></title><description><![CDATA[<p>Die Wahrscheinlichkeit das 2 gleiche IDs generiert werden kann man ja ausrechnen.</p>
<p>Also 32 Stellen, bei 16 Möglichkeiten pro Stelle. Das macht <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>1</mn><msup><mn>6</mn><mrow><mn>3</mn><mn>2</mn></mrow></msup></mrow><annotation encoding="application/x-tex">16^{32}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.8141079999999999em;"></span><span class="strut bottom" style="height:0.8141079999999999em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">1</span><span class="mord"><span class="mord mathrm">6</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">3</span><span class="mord mathrm">2</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>, ungefähr eine 34 mit 37 Nullen. Das ist eine ganze Menge.<br />
Gehen wir mal davon aus, dass 1 Milliarde IDs bereits vergeben sind (IMHO total unrealistische Zahl).<br />
Die Wahrscheinlichkeit, dass durch eine Zufallszahl genau eine dieser vergebenen IDs getroffen wird, liegt bei ungefähr 0,000000000000000000000000000294%.<br />
Das ist IMHO so wahnsinnig gering, da ist die Chance höher mehrmals vom Blitz getroffen zu werden und zusätzlich mehrere Sechser im Lotto zu haben. <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/424649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424649</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Sun, 28 Dec 2003 19:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 19:33:46 GMT]]></title><description><![CDATA[<p>Das ist beruhigend! <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="😃"
    /> Nu is die ID aber in einer Variable vom Typ GUID. Ich brauche sie aber am besten als char* um sie dann später in die Registry schreiben zu können! Wie krieg ich die jetzt umkonvertiert??? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/424653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424653</guid><dc:creator><![CDATA[nirsaja]]></dc:creator><pubDate>Sun, 28 Dec 2003 19:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 21:14:23 GMT]]></title><description><![CDATA[<p>Mit wsprintf und %x bzw. %X sollte das eigentlich möglich sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Wie die GUID-Struktur aufgebaut ist findest du z.B. <a href="http://msdn.microsoft.com/library/en-us/rpc/rpc/guid.asp" rel="nofollow">hier</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/424746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424746</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 28 Dec 2003 21:14:23 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Sun, 28 Dec 2003 22:19:13 GMT]]></title><description><![CDATA[<p>Warum einfach wenns auch kompliziert geht? <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>Nimm <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/cmf_m2z_2jzm.asp" rel="nofollow">StringFromGUID2</a>, dann sparst du dir das wsprintf. Die Funktion steht übrigens in dem von dir verlinkten Artikel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/424806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/424806</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Sun, 28 Dec 2003 22:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Mon, 29 Dec 2003 12:17:44 GMT]]></title><description><![CDATA[<p>Ok vielen Dank für eure Hilfe! Ich hab mir jetzt ne eigene Funktion zum konvertieren geschrieben!</p>
<pre><code class="language-cpp">char *GUID2String(char *result,GUID id_to_convert)
{
  wsprintf(result,&quot;{%x-%x-%x-%x%x-%x%x%x%x%x%x}&quot;,id_to_convert.Data1,
                                                 id_to_convert.Data2,
                                                 id_to_convert.Data3,
                                                 id_to_convert.Data4[0],
                                                 id_to_convert.Data4[1],
                                                 id_to_convert.Data4[2],
                                                 id_to_convert.Data4[3],
                                                 id_to_convert.Data4[4],
                                                 id_to_convert.Data4[5],
                                                 id_to_convert.Data4[6],
                                                 id_to_convert.Data4[7]);

  return result;
}
</code></pre>
<p>Das spukt schon vernünftige IDs aus, aber eine Sache ist mir immer noch nicht hundertprozentig klar:<br />
msdn sagt zu Data4:<br />
Array of 8 bytes</p>
<p>aber das sind duch eigentlich neun oder? [0] bis [8]!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/425047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/425047</guid><dc:creator><![CDATA[nirsaja]]></dc:creator><pubDate>Mon, 29 Dec 2003 12:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Mon, 29 Dec 2003 12:29:45 GMT]]></title><description><![CDATA[<p>1.) Warum verwendest du nicht StringFromGUID2?!<br />
2.) Wieso von [0] bis [8]? Es ist doch nur [0] bis [7]!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/425053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/425053</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 29 Dec 2003 12:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Mon, 29 Dec 2003 13:01:13 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>1.) Warum verwendest du nicht StringFromGUID2?!</p>
</blockquote>
<p>Weil ich einfach mal gucken wollte, ob ich das auch selber hinkriege! :p</p>
<p>flenders schrieb:</p>
<blockquote>
<p>2.) Wieso von [0] bis [8]? Es ist doch nur [0] bis [7]!</p>
</blockquote>
<p>msdn schrieb:</p>
<blockquote>
<p>typedef struct _GUID {<br />
DWORD Data1;<br />
WORD Data2;<br />
WORD Data3;<br />
BYTE Data4[8];<br />
} GUID;</p>
</blockquote>
<p>Versteh ich da was falsch???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/425076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/425076</guid><dc:creator><![CDATA[nirsaja]]></dc:creator><pubDate>Mon, 29 Dec 2003 13:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Mon, 29 Dec 2003 15:19:25 GMT]]></title><description><![CDATA[<p>Ja, da verstehst du etwas falsch!</p>
<pre><code class="language-cpp">BYTE Data4[8];
</code></pre>
<p>Das heißt, dass Data4 ein Array mit 8 Elementen vom Typ BYTE ist. Diese kannst du mit Data4[0] bis Data4[7] ansprechen <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/425240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/425240</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 29 Dec 2003 15:19:25 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Tue, 30 Dec 2003 10:27:16 GMT]]></title><description><![CDATA[<p>a) Das GUID-Format ist festgelegt. Einfach Zufallszahlen geht nicht. UuidCreate, oder CoCreateGuid<br />
(hab irgendwo nen Link rumliegen...)</p>
<p>b) Die IDs sind eindeutig, wenn eine Netzwerkkarte im erzeugenden System vorhanden ist</p>
<p>Der erzeugte UUID besteht aus einem Timestamp, und einem &quot;Hardware-ID&quot;. Wenn keine netzwerkkarte vorhanden, dann aus verschiedenen ID's (Festplatte, etc.) und gehasht. Wenn eine Netzerkkarte vorhanden, dann wird die MAC-Adresse verwendet - seit W2K gehasht (so daß kein Rückschluß auf den erzeugenden Computer möglich ist). Bei mehreren Karten wird eine ausgewählt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/425592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/425592</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Tue, 30 Dec 2003 10:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Thu, 18 Mar 2004 22:33:43 GMT]]></title><description><![CDATA[<p>sollte man eigentlich für sein Programm seine CLSID einmal festlegen und hart im code codieren, oder ist es besser, die clsid on the fly beim ersten ausführen des programms auf dem rechner generieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/483921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/483921</guid><dc:creator><![CDATA[esskar]]></dc:creator><pubDate>Thu, 18 Mar 2004 22:33:43 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Thu, 18 Mar 2004 22:55:05 GMT]]></title><description><![CDATA[<p>Ich kenne es eigentlich nur so das man eine feste nimmt. Ist sonst schwierig auf einem anderen Rechner die richtige GUID zu finden. Wegen der Möglichkeit das zwei doppelt sind: Ich glaube das CoCreateGUID das Datum mit einbezieht. Also ist die Wahrscheinlichkeit zwei doppelt zu haben noch geringer (es müssten diese beiden dann schon am gleichen Tag erstellt worden sein).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/483931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/483931</guid><dc:creator><![CDATA[Oliver]]></dc:creator><pubDate>Thu, 18 Mar 2004 22:55:05 GMT</pubDate></item><item><title><![CDATA[Reply to CLSIDs generieren on Thu, 18 Mar 2004 23:45:14 GMT]]></title><description><![CDATA[<p>hatte ich mir fast gedacht...<br />
aber sicher ist sicher...<br />
danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/483958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/483958</guid><dc:creator><![CDATA[esskar]]></dc:creator><pubDate>Thu, 18 Mar 2004 23:45:14 GMT</pubDate></item></channel></rss>