<?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[DLL in VC++]]></title><description><![CDATA[<p>Hi!</p>
<p>Meine C++ Kenntnisse sind leider etwas mager, dennoch versuche ich (verzweifelt) eine DLL in mein VC++ Programm einzubinden. Ich habe bereits schon einmal ein DLL eingebunden aber diesmal scheint es etwas schwieriger zu sein.<br />
Ich habe versucht mit &quot;dumpbin /exports name.dll&quot; herauszufinden, welche Funktionen die DLL besitzt und wie ich diese ansprechen kann. Die Funktion schaun wie folgt aus:</p>
<p>ordinal hint RVA name</p>
<p>1 0 000011D7 DllCanUnloadNow<br />
2 1 00001209 DllGetClassObject<br />
3 2 00001222 DllRegisterServer<br />
4 3 00001231 DllUnregisterServer</p>
<p>Nun??<br />
Ich habe keine Ahnung wie ich die DLL einbinden soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Ich habe bereits die Hilfe schon durchforstet und bin darauf gestossen, dass dies ein COM-Interface ist! Tja - Bahnhof!</p>
<p>Kann mir jemand weiterhelfen?</p>
<p>Bitte - Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/45888/dll-in-vc</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 11:37:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/45888.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Aug 2003 13:49:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 13:49:40 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Meine C++ Kenntnisse sind leider etwas mager, dennoch versuche ich (verzweifelt) eine DLL in mein VC++ Programm einzubinden. Ich habe bereits schon einmal ein DLL eingebunden aber diesmal scheint es etwas schwieriger zu sein.<br />
Ich habe versucht mit &quot;dumpbin /exports name.dll&quot; herauszufinden, welche Funktionen die DLL besitzt und wie ich diese ansprechen kann. Die Funktion schaun wie folgt aus:</p>
<p>ordinal hint RVA name</p>
<p>1 0 000011D7 DllCanUnloadNow<br />
2 1 00001209 DllGetClassObject<br />
3 2 00001222 DllRegisterServer<br />
4 3 00001231 DllUnregisterServer</p>
<p>Nun??<br />
Ich habe keine Ahnung wie ich die DLL einbinden soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Ich habe bereits die Hilfe schon durchforstet und bin darauf gestossen, dass dies ein COM-Interface ist! Tja - Bahnhof!</p>
<p>Kann mir jemand weiterhelfen?</p>
<p>Bitte - Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/332121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332121</guid><dc:creator><![CDATA[The_Guardian]]></dc:creator><pubDate>Thu, 14 Aug 2003 13:49:40 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 14:24:48 GMT]]></title><description><![CDATA[<p><a href="http://c-plusplus.net/forum/viewtopic.php?t=45892" rel="nofollow">http://c-plusplus.net/forum/viewtopic.php?t=45892</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/332170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332170</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Thu, 14 Aug 2003 14:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 14:29:31 GMT]]></title><description><![CDATA[<p>schomal<br />
LoadLibary und GetProcAdress angesehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/332180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332180</guid><dc:creator><![CDATA[Hauptmann]]></dc:creator><pubDate>Thu, 14 Aug 2003 14:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 14:33:58 GMT]]></title><description><![CDATA[<p>bei ner COM-DLL braucht man das aber nicht ! wie´s genau geht weiß ich aber auch nicht ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/332185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332185</guid><dc:creator><![CDATA[ofen]]></dc:creator><pubDate>Thu, 14 Aug 2003 14:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 14:37:05 GMT]]></title><description><![CDATA[<p>hab ich, ich weiß aber nicht, welche Funktion ich bei GetProcAdress angeben soll??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/332187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332187</guid><dc:creator><![CDATA[hugo2]]></dc:creator><pubDate>Thu, 14 Aug 2003 14:37:05 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 14:38:51 GMT]]></title><description><![CDATA[<p>aus du auch noch andere dateien? zum beispiel header, type-lib etc. ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/332189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332189</guid><dc:creator><![CDATA[ec]]></dc:creator><pubDate>Thu, 14 Aug 2003 14:38:51 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 14:40:42 GMT]]></title><description><![CDATA[<p>Andere Datein (Header,etc.) hab ich nicht. Die DLL hab ich von den Behörden. Mit dieser DLL soll eine sicher Verbindung aufgebaut werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/332190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332190</guid><dc:creator><![CDATA[hugo2]]></dc:creator><pubDate>Thu, 14 Aug 2003 14:40:42 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 15:37:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei einer COM-DLL nützen Dir LoadLibrary und GetProcAddress nicht allzuviel.<br />
Ich denke es müßt mit der Präprozessor-Anweisung #import gehen, als Beispiel<br />
kann man sich das ansehen, wie man ADO in VC++ einbindet in der MSDM ansehen.<br />
Wichtig ist bei Verwendung von COM-DLL's das Du die API ::CoInitialize(NULL)<br />
und am ende des Programms ::CoUninitialze() aufrufst.<br />
Ich hoffe das Hilft weiter, für genauere Anweisungen fehlt mir im Moment leider die Zeit.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/332234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332234</guid><dc:creator><![CDATA[CFrank]]></dc:creator><pubDate>Thu, 14 Aug 2003 15:37:55 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Thu, 14 Aug 2003 19:11:53 GMT]]></title><description><![CDATA[<p>schau mal hier: <a href="http://www.henkessoft.de/mfc_einsteigerbuch_kapitel15.htm" rel="nofollow">http://www.henkessoft.de/mfc_einsteigerbuch_kapitel15.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/332349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/332349</guid><dc:creator><![CDATA[..]]></dc:creator><pubDate>Thu, 14 Aug 2003 19:11:53 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Fri, 15 Aug 2003 13:45:45 GMT]]></title><description><![CDATA[<p>Mit der Seite</p>
<p>.. schrieb:</p>
<blockquote>
<p>schau mal hier: <a href="http://www.henkessoft.de/mfc_einsteigerbuch_kapitel15.htm" rel="nofollow">http://www.henkessoft.de/mfc_einsteigerbuch_kapitel15.htm</a></p>
</blockquote>
<p>konnte ich schon sehr viel Anfangen mit meiner DLL.<br />
Aber: In der DLL kommt der Datentyp BSTR vor. Problem (muss nicht mit dem Typ zusammen hängen): Jedesmal, wenn ich die Funktion der DLL starte, stürzt das Programm ab mit dem Fehler: R6025 - pure virtual fuction call</p>
<p>Hat jemand eine Idee was das heißt?? Falscher Aufruf der Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/333003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/333003</guid><dc:creator><![CDATA[The_Guardian]]></dc:creator><pubDate>Fri, 15 Aug 2003 13:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Fri, 15 Aug 2003 15:48:04 GMT]]></title><description><![CDATA[<p>MSDN:<br />
<strong>C-Laufzeitfehler R6025<br />
rein virtueller Funktionsaufruf</strong></p>
<p>Es wurde kein Objekt instantiiert, um den rein virtuellen Funktionsaufruf zu verarbeiten. Dieser Fehler wurde durch das Aufrufen einer virtuellen Funktion in einer abstrakten Basisklasse durch einen Zeiger verursacht, der durch eine Umwandlung in einen Typen der abgeleiteten Klasse erstellt wurde, jedoch tatsächlich ein Zeiger auf die Basisklasse ist. Dies kann auftreten, wenn ein void*, das während der Erstellung der Basisklasse erstellt wurde, auf einen Zeiger zu einer Klasse umgewandelt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/333123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/333123</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Fri, 15 Aug 2003 15:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Mon, 18 Aug 2003 07:15:09 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Leider stürtzt mein simples Programm immer wieder ab, wenn ich auf die Funktion der COM-DLL zugreifen will - mit dem Fehler: &quot;Der Vorgang read konnte nicht auf dem Speicher durchgeführt werden.&quot; Was für mich bedeutet, dass der Zeiger auf die DLL falsch sein müsste.<br />
Anbei mein Programm:</p>
<pre><code class="language-cpp">void main(int argc, char* argv[])
{

	HRESULT r,hr;
	CLSID clsid;
	IID	IID_OADEDINET;
	long ret;

	BSTR des;
	BSTR pageinhalt;

	interface IOAdedinet : IDispatch {
        virtual long Adedinet(
                        BSTR Nif, 
                        BSTR Edi, 
                        BSTR Descripcion, 
                        BSTR PaginaHtml) = 0;
    };

	IOAdedinet* pwAdedinet;

	printf(&quot; Anfang\n&quot;);
	CoInitialize(NULL);

	if (( hr = CLSIDFromProgID(L&quot;Adedinet.OAdedinet.1&quot;,&amp;clsid)) != NOERROR )
	{	printf(&quot;Prog-ID nicht gefunden - Fehler = %x\n&quot;, hr);	}

	if ((r =IIDFromString(L&quot;{8DF74733-8667-4800-B107-1CD37F161EDE}&quot;,&amp;IID_OADEDINET)) != NOERROR)
	{	printf(&quot;Fehlber bei IIDFromString&quot;); }

	r = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_OADEDINET, (void**) &amp;pwAdedinet);

	if(SUCCEEDED(r)) 
	{
		ret = pwAdedinet-&gt;Adedinet((BSTR )&quot;A59841783&quot;,(BSTR ) &quot;TEST&quot;,des,pageinhalt);
	}

	pwAdedinet-&gt;Release();

	CoUninitialize();

}
</code></pre>
<p>Das Interface in der DLL schaut wie folgt aus:</p>
<pre><code class="language-cpp">interface IOAdedinet : IDispatch {
        [id(0x00000001), helpstring(&quot;method Adedinet&quot;)]
        HRESULT Adedinet(
                        BSTR Nif, 
                        BSTR Edi, 
                        [in, out, optional] BSTR Descripcion, 
                        [in, out, optional] BSTR PaginaHtml, 
                        [out, retval] long* retorno);
        [id(0x00000002), propget, helpstring(&quot;property descripcion&quot;)]
        HRESULT Descripcion([out, retval] BSTR* pVal);
        [id(0x00000002), propput, helpstring(&quot;property descripcion&quot;)]
        HRESULT Descripcion([in] BSTR pVal);
        [id(0x00000003), propget, helpstring(&quot;property paginahtml&quot;)]
        HRESULT PaginaHtml([out, retval] BSTR* pVal);
        [id(0x00000003), propput, helpstring(&quot;property paginahtml&quot;)]
        HRESULT PaginaHtml([in] BSTR pVal);
    };
</code></pre>
<p>thx for your help!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/334721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/334721</guid><dc:creator><![CDATA[The_Guardian]]></dc:creator><pubDate>Mon, 18 Aug 2003 07:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Mon, 18 Aug 2003 09:31:33 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">if(SUCCEEDED(r))  
    { 
        ret = pwAdedinet-&gt;Adedinet((BSTR )&quot;A59841783&quot;,(BSTR ) &quot;TEST&quot;,des,pageinhalt); 
    }
</code></pre>
</blockquote>
<p><em><strong>*kein Kommentar*</strong></em><br />
Siehe SysAllocString/SysFreeString in der MSDN</p>
]]></description><link>https://www.c-plusplus.net/forum/post/334824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/334824</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Mon, 18 Aug 2003 09:31:33 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Mon, 18 Aug 2003 10:05:08 GMT]]></title><description><![CDATA[<p>Leider hat sich nichts an der Fehlermeldung geändert: &quot;Der Vorgang read konnte nicht auf dem Speicher durchgeführt werden.&quot;</p>
<pre><code class="language-cpp">SysFreeString(nif);
nif = SysAllocString(L&quot;A59841783&quot;);

SysFreeString(edi);
edi = SysAllocString(L&quot;Test&quot;);

SysFreeString(des);
SysFreeString(pageinhalt);

ret = pwAdedinet-&gt;Adedinet(nif,edi, des, pageinhalt);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/334852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/334852</guid><dc:creator><![CDATA[The_Guardian]]></dc:creator><pubDate>Mon, 18 Aug 2003 10:05:08 GMT</pubDate></item><item><title><![CDATA[Reply to DLL in VC++ on Mon, 18 Aug 2003 11:44:17 GMT]]></title><description><![CDATA[<p>Ist es zu heiss draussen oder was soll uns dieser Codeausschnitt sagen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/334934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/334934</guid><dc:creator><![CDATA[Unbekannter]]></dc:creator><pubDate>Mon, 18 Aug 2003 11:44:17 GMT</pubDate></item></channel></rss>