<?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[BSTR* verwende (Achtung Anfänger...)]]></title><description><![CDATA[<p>Hi,</p>
<p>ich muss einen BSTR* verwenden. Das ist ja offenbar ein Pointer.<br />
Über dessen Verwendung werde ich auch über Google nicht richtig<br />
schlau. Codeproject brachte zwar einen Treffer, aber scheinbar<br />
ist das was ich vorhabe doch etwas anders...</p>
<p>Ich dachte ich kann</p>
<pre><code class="language-cpp">BSTR* x = SysAllocString(L&quot;A&quot;);
</code></pre>
<p>verwenden, um dann in x den Wert &quot;A&quot; stehen zu haben.<br />
Mal wieder, wie so oft, falsch gedacht. Aber wie verwende ich den BSTR* dann richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175457/bstr-verwende-achtung-anfänger</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 13:23:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175457.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Mar 2007 17:49:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 17:49:17 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich muss einen BSTR* verwenden. Das ist ja offenbar ein Pointer.<br />
Über dessen Verwendung werde ich auch über Google nicht richtig<br />
schlau. Codeproject brachte zwar einen Treffer, aber scheinbar<br />
ist das was ich vorhabe doch etwas anders...</p>
<p>Ich dachte ich kann</p>
<pre><code class="language-cpp">BSTR* x = SysAllocString(L&quot;A&quot;);
</code></pre>
<p>verwenden, um dann in x den Wert &quot;A&quot; stehen zu haben.<br />
Mal wieder, wie so oft, falsch gedacht. Aber wie verwende ich den BSTR* dann richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243001</guid><dc:creator><![CDATA[Guffy@Home]]></dc:creator><pubDate>Sat, 10 Mar 2007 17:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 17:54:27 GMT]]></title><description><![CDATA[<p>BSTR ist schon ein Zeiger! Also reicht folgendes:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;tchar.h&gt;

int _tmain()
{
  BSTR bstr = SysAllocString(L&quot;A&quot;);
  SysFreeString(bstr);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1243006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243006</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 10 Mar 2007 17:54:27 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 18:19:44 GMT]]></title><description><![CDATA[<p>Hi, also das Problem ist, dass die Funktion der ich das übergebe das:</p>
<pre><code class="language-cpp">BSTR * wert
</code></pre>
<p>erwartet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243027</guid><dc:creator><![CDATA[Guffy@Home]]></dc:creator><pubDate>Sat, 10 Mar 2007 18:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 18:24:36 GMT]]></title><description><![CDATA[<p>Ahh logisch muss ja mit &amp; aufrufen. Outch.</p>
<p>Weiteres Problem mit der Funktion der ich es übergebe:</p>
<blockquote>
<p>Unzulässiger Aufruf einer nicht statischen Memberfunktion</p>
</blockquote>
<p>Ja, es geht um meine VB-Dll <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/1243033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243033</guid><dc:creator><![CDATA[Guffy]]></dc:creator><pubDate>Sat, 10 Mar 2007 18:24:36 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 18:53:46 GMT]]></title><description><![CDATA[<p>Achtung! Wenn die Funktion das so erwartet, dann bist Du dafür zuständig, dass Du den Speicher wieder mittels &quot;SysFreeString&quot; freigibst!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243050</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 10 Mar 2007 18:53:46 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 19:19:27 GMT]]></title><description><![CDATA[<p>Ok, ich habe den Funktionsaufruf jetzt mit ..(&amp;x,&amp;y) vorgenommen.<br />
Das funktioniert auch. Der Compiler meckert jetzt mit mir allerdings,<br />
weil ich einen &quot;unzulässigen Aufruf einer nicht statischen Memberfunktion&quot;<br />
vornehmen würde(??).</p>
<p>Der Namespace der DLL wurde mit</p>
<pre><code class="language-cpp">using namespace EXPORTMAP
</code></pre>
<p>vorgenommen.<br />
Nun ist innerhalb des Namespace folgende Verkettung gegeben:</p>
<p>(Ich rufe in meiner Anwendung wie folgt auf:)</p>
<pre><code class="language-cpp">EXPORTMAP::_xStart::ExportItem(&amp;x,&amp;y);
</code></pre>
<p>Vielen Dank für den Hinweis mit SysFreeString. Das war mir ebenfalls<br />
nicht bekannt.</p>
<p>Was will mir der Compiler mit dem Fehler sagen? Wie soll ich die<br />
Funktion denn sonst aufrufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243062</guid><dc:creator><![CDATA[Guffy@Home]]></dc:creator><pubDate>Sat, 10 Mar 2007 19:19:27 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 19:22:28 GMT]]></title><description><![CDATA[<p>Du musst eine Instanz von der Klasse/Objekt erstellen bevor Du davon Methoden aufrufen kannst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243063</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 10 Mar 2007 19:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 21:40:34 GMT]]></title><description><![CDATA[<p>Mal ne ganz dumme Frage, aber wie kann ich diese Instanz erzeugen?<br />
Mein Compiler meckert mit mir, sobald ich dabei den Namespace-Bezeichner<br />
verwende.</p>
<p>Müsste es nicht inetwa so aussehen</p>
<pre><code class="language-cpp">EXPORTMAP pt = EXPORTMAP::_xStart;
</code></pre>
<p>Dann der Zugriff mittels pt(..); ??<br />
Wäre toll, wenn du mir da nochmal Nachhilfe geben kannst <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="😃"
    /><br />
Sofern ich bei google schon fündig geworden bin, poste ich hier.</p>
<p>Ich finde es übrigens gut, dass auch Neulinge, die praktisch nur aus Büchern<br />
lernen können, hier nicht im Stich gelassen werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243125</guid><dc:creator><![CDATA[Guffy@Home]]></dc:creator><pubDate>Sat, 10 Mar 2007 21:40:34 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 22:14:03 GMT]]></title><description><![CDATA[<p>Wie bindest Du denn die DLL/OCX ein? Via &quot;#import&quot;?<br />
Dann mach es doch so:</p>
<p>(Schlechtes Beispiel für Word (PS: Word spricht man normal nur via IDispatch an und nicht via #import):</p>
<pre><code class="language-cpp">#import &quot;C:\\Programme\\Microsoft Office\\OFFICE11\\msword.olb&quot; raw_interfaces_only, rename(&quot;ExitWindows&quot;, &quot;_ExitWindows&quot;)
#include &lt;windows.h&gt;
#include &lt;tchar.h&gt;
int _tmain()
{
  CoInitialize(NULL);
  {
    Word::_ApplicationPtr app;
    app.CreateInstance(&quot;Word.Application&quot;);

    // read the version
    BSTR version;
    app-&gt;get_Version(&amp;version);
    wprintf(version);
    SysFreeString(version);
  }
  CoUninitialize();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1243136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243136</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 10 Mar 2007 22:14:03 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sat, 10 Mar 2007 22:36:07 GMT]]></title><description><![CDATA[<p>Ich binde wie von dir empfohlen via #import die EXPORTMAP.DLL ein</p>
<p>dazu</p>
<pre><code class="language-cpp">using namespace EXPORTMAP
</code></pre>
<p>In der EXPORTMAP.tlh habe ich dann auch die Funktion gefunden,<br />
die ich aufrufen muss. Diese ist definiert unter einer</p>
<pre><code class="language-cpp">struct _xExport
</code></pre>
<p>worin wiederum steht</p>
<pre><code class="language-cpp">virtual HRESULT __stdcall norm_Export(BSTR *...)
</code></pre>
<p>Ich muss dann doch, wenn ich es richtig nachvollzogen habe so vorgehen:</p>
<pre><code class="language-cpp">_xExport app;
app.norm_Export;
</code></pre>
<p>Ergebnis:</p>
<blockquote>
<p>'EXPORTMAP::_xExport: Instanz von abstrakter Klasse kann nicht erstellt werden<br />
'norm_Export': Ist kein Element von 'EXPORTMAP::_xExport'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1243143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243143</guid><dc:creator><![CDATA[Guffy@Home]]></dc:creator><pubDate>Sat, 10 Mar 2007 22:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sun, 11 Mar 2007 08:17:10 GMT]]></title><description><![CDATA[<p>Hast Du mein Beispiel angeschaut!?</p>
<p>Das Ausschlagebende in meinem Code ist:</p>
<pre><code class="language-cpp">Word::_ApplicationPtr app; 
    app.CreateInstance(&quot;Word.Application&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1243200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243200</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 11 Mar 2007 08:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to BSTR* verwende (Achtung Anfänger...) on Sun, 11 Mar 2007 10:50:21 GMT]]></title><description><![CDATA[<p>Folgendes ist bei Dir falsch:</p>
<p>* Du musst Deine MFC-Anwendung mit „Autoamtion“ im Wizward erstellen! Sonst wird das ganze COM-Zeugs gar nicht initialisiert!<br />
* Du musst bei Verwendung der GUID geschweifte Klammern angeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243231</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 11 Mar 2007 10:50:21 GMT</pubDate></item></channel></rss>