<?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[GUID-Definition in merhfach verwendetem Header]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche einen DirectShow-Filter von Desktop-Windows auf Windows Mobile zu portieren. Das Beispiel-Projekt (mit Projektdatei) für Windows kompiliert dabei problemlos. Nach dem erstellen eines Windows-Mobile Projekts und dem einbinden der entsprechenden Header und Bibliotheken bleibt folgendes Problem:</p>
<p>In einer Headerdatei des Projekts sind GUIDs für COM definiert:</p>
<pre><code class="language-cpp">DEFINE_GUID(CLSID_xyz, 0x000000ce, ... );
</code></pre>
<p>Das Problem ist, daß CLSID in mehreren Quelltextdateien benötigt werden und so das entprechende Headerfile mehrfach eingebunden wird.</p>
<p>Das Kompilieren geht soweit gut, da die Variablen an der entprechenden Stelle bekannt sind, nur der Linker meldet einen Fehler:</p>
<pre><code class="language-cpp">error LNK2005: CLSID_xyz ist bereits in maindll.obj definiert.
</code></pre>
<p>Der Fehler ist klar, da die GUID-Definition ja tatsächlich in mehrere CPP-Dateien inkludiert wurde und die entsprechenden .obj-Dateien die GUID neu definieren.</p>
<p>Im ursprünglichen Projekt war der Code allerdings problemlos zu kompilieren und zu linken. Ich gehe davon aus, daß man das dem Linker oder dem Complier irgendwie klarmachen kann, weiß aber nicht, was die entsprechende Option ist.</p>
<p>Ich hoffe jemand kann mir helfen!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/144190/guid-definition-in-merhfach-verwendetem-header</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 22:21:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/144190.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 15 Apr 2006 17:42:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to GUID-Definition in merhfach verwendetem Header on Sat, 15 Apr 2006 17:42:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche einen DirectShow-Filter von Desktop-Windows auf Windows Mobile zu portieren. Das Beispiel-Projekt (mit Projektdatei) für Windows kompiliert dabei problemlos. Nach dem erstellen eines Windows-Mobile Projekts und dem einbinden der entsprechenden Header und Bibliotheken bleibt folgendes Problem:</p>
<p>In einer Headerdatei des Projekts sind GUIDs für COM definiert:</p>
<pre><code class="language-cpp">DEFINE_GUID(CLSID_xyz, 0x000000ce, ... );
</code></pre>
<p>Das Problem ist, daß CLSID in mehreren Quelltextdateien benötigt werden und so das entprechende Headerfile mehrfach eingebunden wird.</p>
<p>Das Kompilieren geht soweit gut, da die Variablen an der entprechenden Stelle bekannt sind, nur der Linker meldet einen Fehler:</p>
<pre><code class="language-cpp">error LNK2005: CLSID_xyz ist bereits in maindll.obj definiert.
</code></pre>
<p>Der Fehler ist klar, da die GUID-Definition ja tatsächlich in mehrere CPP-Dateien inkludiert wurde und die entsprechenden .obj-Dateien die GUID neu definieren.</p>
<p>Im ursprünglichen Projekt war der Code allerdings problemlos zu kompilieren und zu linken. Ich gehe davon aus, daß man das dem Linker oder dem Complier irgendwie klarmachen kann, weiß aber nicht, was die entsprechende Option ist.</p>
<p>Ich hoffe jemand kann mir helfen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1038064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1038064</guid><dc:creator><![CDATA[pdadev]]></dc:creator><pubDate>Sat, 15 Apr 2006 17:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to GUID-Definition in merhfach verwendetem Header on Sun, 16 Apr 2006 09:41:36 GMT]]></title><description><![CDATA[<p>Mit<br />
#pragma once<br />
wird der Header nur einmal eingebunden pro Compilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1038352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1038352</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 16 Apr 2006 09:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to GUID-Definition in merhfach verwendetem Header on Sun, 16 Apr 2006 11:36:59 GMT]]></title><description><![CDATA[<p>#pragma once steht im Header.<br />
Das Kompilieren funktioniert wie gesagt ja auch. Das Problem ist, daß die Definition in jedem kompilierten OBJ-File vorliegt und der Linker sich verständlicherweise darüber beschwert!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1038409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1038409</guid><dc:creator><![CDATA[pdadev]]></dc:creator><pubDate>Sun, 16 Apr 2006 11:36:59 GMT</pubDate></item></channel></rss>