<?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[CComVariant::SetByRef() problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich sitze gerade an meiner GUI für mein projekt. ich versuche alle meine änderungen die ich über die GUI gemacht habe, in einer XML datei zu speichern. auf dem weg dahin, muss ich meine objecte daten in VARIANTs stecken.<br />
dafür nutze ich CComVariant, da smartpointer deutlich angenehmer sind, als pure VARIANTS.<br />
nun möchte ich meinem variant einen wert zuweisen, und nutze dafür</p>
<pre><code class="language-cpp">CComVariant t_Value;
t_Value.SetByRef(&amp;p_pProto-&gt;Type.Tile.m_bAutotile);
</code></pre>
<p>wobei m_bAutotile ein bool ist.<br />
nun folgt aber ein compiler error:</p>
<blockquote>
<p>1&gt;c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\atlcomcli.h(2577) : error C2039: 'VT': Ist kein Element von 'ATL::CVarTypeInfo&lt;T&gt;'<br />
1&gt; with<br />
1&gt; [<br />
1&gt; T=bool<br />
1&gt; ]<br />
1&gt; c:\users\anti-freak\documents\visual studio 2008\projects\antis-gameengine(arbeitsname)\mapeditor\databaseoutput.cpp(157): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template &quot;void ATL::CComVariant::SetByRef&lt;bool&gt;(T <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="😉"
    /> throw()&quot;.<br />
1&gt; with<br />
1&gt; [<br />
1&gt; T=bool<br />
1&gt; ]<br />
1&gt;c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\atlcomcli.h(2577) : error C2065: 'VT': nichtdeklarierter Bezeichner</p>
</blockquote>
<p>google spuckt nichts brauchbares aus.</p>
<p>das ist die methode wo der error entsteht.</p>
<pre><code class="language-cpp">template&lt; typename T &gt;
	void SetByRef( _In_ T* pT ) throw()
	{
		Clear();
		vt = CVarTypeInfo&lt; T &gt;::VT|VT_BYREF;
		byref = pT;
	}
</code></pre>
<p>ich nutze vs2008 professional.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306460/ccomvariant-setbyref-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 08:14:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306460.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 29 Jul 2012 18:36:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Sun, 29 Jul 2012 19:44:49 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich sitze gerade an meiner GUI für mein projekt. ich versuche alle meine änderungen die ich über die GUI gemacht habe, in einer XML datei zu speichern. auf dem weg dahin, muss ich meine objecte daten in VARIANTs stecken.<br />
dafür nutze ich CComVariant, da smartpointer deutlich angenehmer sind, als pure VARIANTS.<br />
nun möchte ich meinem variant einen wert zuweisen, und nutze dafür</p>
<pre><code class="language-cpp">CComVariant t_Value;
t_Value.SetByRef(&amp;p_pProto-&gt;Type.Tile.m_bAutotile);
</code></pre>
<p>wobei m_bAutotile ein bool ist.<br />
nun folgt aber ein compiler error:</p>
<blockquote>
<p>1&gt;c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\atlcomcli.h(2577) : error C2039: 'VT': Ist kein Element von 'ATL::CVarTypeInfo&lt;T&gt;'<br />
1&gt; with<br />
1&gt; [<br />
1&gt; T=bool<br />
1&gt; ]<br />
1&gt; c:\users\anti-freak\documents\visual studio 2008\projects\antis-gameengine(arbeitsname)\mapeditor\databaseoutput.cpp(157): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template &quot;void ATL::CComVariant::SetByRef&lt;bool&gt;(T <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="😉"
    /> throw()&quot;.<br />
1&gt; with<br />
1&gt; [<br />
1&gt; T=bool<br />
1&gt; ]<br />
1&gt;c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\atlcomcli.h(2577) : error C2065: 'VT': nichtdeklarierter Bezeichner</p>
</blockquote>
<p>google spuckt nichts brauchbares aus.</p>
<p>das ist die methode wo der error entsteht.</p>
<pre><code class="language-cpp">template&lt; typename T &gt;
	void SetByRef( _In_ T* pT ) throw()
	{
		Clear();
		vt = CVarTypeInfo&lt; T &gt;::VT|VT_BYREF;
		byref = pT;
	}
</code></pre>
<p>ich nutze vs2008 professional.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236699</guid><dc:creator><![CDATA[DNKpp]]></dc:creator><pubDate>Sun, 29 Jul 2012 19:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Sun, 29 Jul 2012 19:35:38 GMT]]></title><description><![CDATA[<blockquote>
<p>m_bAutotileein</p>
</blockquote>
<ul>
<li></li>
</ul>
<pre><code class="language-cpp">template&lt; typename T &gt;
    void SetByRef( _In_ T* pT ) throw()
    {
        Clear();
        vt = CVarTypeInfo&lt; T &gt;::VT|VT_BYREF;
        byref = pT;
    }
</code></pre>
<p>Was tut diese Zeile? Sehen wir uns das mal naeher an:</p>
<pre><code class="language-cpp">vt = CVarTypeInfo&lt; T &gt;::VT | VT_BYREF;
</code></pre>
<p>Offensichtlich gibt es einen Member VT* (vielleicht ein Skalar).<br />
Der Compiler wird mit der Fehlermeldung Recht haben (hat er meistens sowieso immer); Solange wir nicht <code>CVarTypeInfo</code> s Definition sehen, laesst sich ueber den Fehler keine weitere Aussage machen.</p>
<p>****** Wahnsinning aufschlussreiche Identifier/Klassennamen, die du da hast. <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="🙄"
    /> :D*</p>
<p>Edit (P.S.): Den leeren <code>throw</code> -specifier wuerde ich weglassen. <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="😉"
    /><br />
Denn <code>Clear()</code> hast du wahrscheinlich nicht mit einem solchen Versehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236705</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 29 Jul 2012 19:35:38 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Sun, 29 Jul 2012 19:44:09 GMT]]></title><description><![CDATA[<p>du weißt, das die template funktion aus atlcomcli.h stammt, und nicht von mir ist?<br />
das ist nur die stelle wo mich der compiler hinführt <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>
<p>deswegen bin ich weder an der benennung der member schuld, noch an dem leeren throw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236708</guid><dc:creator><![CDATA[DNKpp]]></dc:creator><pubDate>Sun, 29 Jul 2012 19:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Sun, 29 Jul 2012 19:46:57 GMT]]></title><description><![CDATA[<p>anti-freak schrieb:</p>
<blockquote>
<p>du weißt, das die template funktion aus atlcomcli.h stammt, und nicht von mir ist?</p>
</blockquote>
<p>Woher soll ich das wissen? Ich hasse VC++ und werde es nie benutzen. (und von da kommt das offensichtlich)</p>
<p>Also, die Definition wenn ich bitten darf! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2236709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236709</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 29 Jul 2012 19:46:57 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Sun, 29 Jul 2012 19:50:29 GMT]]></title><description><![CDATA[<p>Was sein kann ist, dass du diese Funktion nicht mit <code>bool</code> als Template-Parameter generieren lassen darfst.</p>
<p>Edit: Hier (<a href="http://msdn.microsoft.com/en-us/library/50hy3h2h(v=vs.80).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/50hy3h2h(v=vs.80).aspx</a>) ist die API-Referenz dazu. Sieht also doch mit <code>bool</code> in Ordnung aus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236710</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 29 Jul 2012 19:50:29 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 06:46:53 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Ich hasse VC++ und werde es nie benutzen. (und von da kommt das offensichtlich)</p>
</blockquote>
<p>Header kommen selten bis nie aus einem Compiler/einer IDE...</p>
<p>@anti-freak: lies dir mal die Links in meiner Signatur durch und liefere uns dann Code + Fehlerbeschreibung mit der man dir auch helfen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236764</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 30 Jul 2012 06:46:53 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 08:55:04 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Ich hasse VC++ und werde es nie benutzen. (und von da kommt das offensichtlich)</p>
</blockquote>
<p>Header kommen selten bis nie aus einem Compiler/einer IDE...</p>
<p>@anti-freak: lies dir mal die Links in meiner Signatur durch und liefere uns dann Code + Fehlerbeschreibung mit der man dir auch helfen kann.</p>
</blockquote>
<p>Im Endeffekt hat er das doch:</p>
<pre><code class="language-cpp">CComVariant t_Value; 
    bool bb = false;
    t_Value.SetByRef(&amp;bb);
</code></pre>
<p>Es gibt halt einfach keine Spezialisierung von CVarTypeInfo für bool.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236796</guid><dc:creator><![CDATA[__cu]]></dc:creator><pubDate>Mon, 30 Jul 2012 08:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 09:19:27 GMT]]></title><description><![CDATA[<p>__cu schrieb:</p>
<blockquote>
<p>Im Endeffekt hat er das doch:</p>
</blockquote>
<p>Nö. Stichwort reduziertes compilierbares Beispiel...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236803</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 30 Jul 2012 09:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 11:26:59 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Woher soll ich das wissen?</p>
</blockquote>
<p>Aber erstmal rumkacken...</p>
<p>Nimm mal ein BOOL oder VARIANT_BOOL statt bool.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236855</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 30 Jul 2012 11:26:59 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 15:12:15 GMT]]></title><description><![CDATA[<p>@pumuckle<br />
ich weiß ehrlich gesagt nicht, was dein problem ist. du willst eine genau fehler beschreibung? lies den ersten post...<br />
das ist das was der compiler ausspuckt, und was ich selbst als bekannte analyse habe.</p>
<p>aber danke ein cast in &quot;BOOL*&quot; hat mir geholfen.<br />
hat sich damit erledigt.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236967</guid><dc:creator><![CDATA[DNKpp]]></dc:creator><pubDate>Mon, 30 Jul 2012 15:12:15 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 15:18:26 GMT]]></title><description><![CDATA[<p>anti-freak schrieb:</p>
<blockquote>
<p>@pumuckle<br />
ich weiß ehrlich gesagt nicht, was dein problem ist. du willst eine genau fehler beschreibung?</p>
</blockquote>
<p>Vor Allem Code... mit den paar Fetzen die du geliefert hast muss man raten was da noch so stehen könnte. Aber diesmal hat der Schuss ins Blaue von Jockelx offenbar ja geholfen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236974</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 30 Jul 2012 15:18:26 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 15:26:40 GMT]]></title><description><![CDATA[<p>ich habs aufs wesentliche beschränkt...<br />
ich denke es bringt dir wenig, wenn ich dir die komplette funktion poste, weil es hakt eben nunmal nur an den zeilen die ich hier gezeigt habe.<br />
gut, ok, das es sich um eine ATL funktion handelt hätte ich dazu schreiben können.<br />
aber egal, ich will gar nicht rum diskutieren, ich hab ja mein problem gelößt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236978</guid><dc:creator><![CDATA[DNKpp]]></dc:creator><pubDate>Mon, 30 Jul 2012 15:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to CComVariant::SetByRef() problem on Mon, 30 Jul 2012 17:37:54 GMT]]></title><description><![CDATA[<p>anti-freak schrieb:</p>
<blockquote>
<p>ich habs aufs wesentliche beschränkt...<br />
ich denke es bringt dir wenig, wenn ich dir die komplette funktion poste, weil es hakt eben nunmal nur an den zeilen die ich hier gezeigt habe.</p>
</blockquote>
<p>Es will auch keiner ein 1000+ Zeilen langes Beispiel.</p>
<p>Sinnvoll ist ein auf's Wesentliche reduziertes compilierbares Beispiel. Oft sind diese dann immer noch lange genug - in deinem Beispiel wären es aber gerade mal 10 oder 20 Zeilen mehr gewesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2237028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2237028</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 30 Jul 2012 17:37:54 GMT</pubDate></item></channel></rss>