<?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[Eigener Handle für c++ DLL]]></title><description><![CDATA[<p>Hi,</p>
<p>da ich eine selbstgeschriebene DLL (in c++) auch unter anderen Sprachen nutzen muss (aufgabe im rahmen einer ausbildung) habe ich hier ein kleines problem!</p>
<p>in meiner dll habe ich eine klasse die gewisse funktionen innehat</p>
<pre><code>class A
{
  private:
    int myInt;
  public: 
    A(void) { this-&gt;myInt=5 }
    int GetInt() { return this-&gt;myInt }
};
</code></pre>
<p>so, da das ganze ja durch eine C schnittstelle genutzt werden muss um es dann in delphi und co. verwenden zu können hörte ich, dass das über einen eigenen handle funktionieren soll (die klasse selbst kann ich ja nich exportieren, da unter c unbekannt.</p>
<p>also hab ich eine dll.h in der eine C funktion steht und ein handle</p>
<pre><code>// mydll.h
#ifdef MYDLL_EXPORTS
    #define MYDLL extern &quot;C&quot; __declspec(dllexport)
#else
    #define MYDLL extern &quot;C&quot; __declspec(dllimport)
#endif

typedef struct tagA_Handle {}*	A_Handle;

MYDLL A_Handle GetInstanceOfA();
</code></pre>
<p>so in der dazugehörigen cpp in der dll steht dann</p>
<pre><code>// mydll.cpp
#include &quot;mydll.h&quot;
MYDLL A_Handle KL_GetRootLogger()
{
	return ((A_Handle ) ( new A() ));
}
</code></pre>
<p>jetzt ist die frage, wie kann ich in meiner externen anweisung nun auf die funktionen der A-Instanz unter dem handle zuweisen ... die adressen sind richtig zugewiesen, sprich das handle zeigt auch auf eine instanz von a.</p>
<pre><code>//main.cpp
A_Handle handleTest = GetInstanceOfA();

//so und ab jetzt bin ich überfragt ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/176896/eigener-handle-für-c-dll</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 15:51:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176896.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Mar 2007 08:15:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eigener Handle für c++ DLL on Mon, 26 Mar 2007 08:15:52 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>da ich eine selbstgeschriebene DLL (in c++) auch unter anderen Sprachen nutzen muss (aufgabe im rahmen einer ausbildung) habe ich hier ein kleines problem!</p>
<p>in meiner dll habe ich eine klasse die gewisse funktionen innehat</p>
<pre><code>class A
{
  private:
    int myInt;
  public: 
    A(void) { this-&gt;myInt=5 }
    int GetInt() { return this-&gt;myInt }
};
</code></pre>
<p>so, da das ganze ja durch eine C schnittstelle genutzt werden muss um es dann in delphi und co. verwenden zu können hörte ich, dass das über einen eigenen handle funktionieren soll (die klasse selbst kann ich ja nich exportieren, da unter c unbekannt.</p>
<p>also hab ich eine dll.h in der eine C funktion steht und ein handle</p>
<pre><code>// mydll.h
#ifdef MYDLL_EXPORTS
    #define MYDLL extern &quot;C&quot; __declspec(dllexport)
#else
    #define MYDLL extern &quot;C&quot; __declspec(dllimport)
#endif

typedef struct tagA_Handle {}*	A_Handle;

MYDLL A_Handle GetInstanceOfA();
</code></pre>
<p>so in der dazugehörigen cpp in der dll steht dann</p>
<pre><code>// mydll.cpp
#include &quot;mydll.h&quot;
MYDLL A_Handle KL_GetRootLogger()
{
	return ((A_Handle ) ( new A() ));
}
</code></pre>
<p>jetzt ist die frage, wie kann ich in meiner externen anweisung nun auf die funktionen der A-Instanz unter dem handle zuweisen ... die adressen sind richtig zugewiesen, sprich das handle zeigt auch auf eine instanz von a.</p>
<pre><code>//main.cpp
A_Handle handleTest = GetInstanceOfA();

//so und ab jetzt bin ich überfragt ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1252692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252692</guid><dc:creator><![CDATA[Beelzemon]]></dc:creator><pubDate>Mon, 26 Mar 2007 08:15:52 GMT</pubDate></item><item><title><![CDATA[Reply to Eigener Handle für c++ DLL on Mon, 26 Mar 2007 12:37:58 GMT]]></title><description><![CDATA[<p>ok hat sich erledigt geht per reinterpret_cast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252908</guid><dc:creator><![CDATA[Beelzemon]]></dc:creator><pubDate>Mon, 26 Mar 2007 12:37:58 GMT</pubDate></item></channel></rss>