<?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[Static variablen in DLLs]]></title><description><![CDATA[<p>hey, ich hab ein dll projekt in visual studio erstellt indem ich ein neues &quot;Class Library&quot; projekt gemacht habe und anschließend /clr deaktiviert und auf &quot;no common language runtime support&quot; gestellt habe</p>
<p>in der DLL haben diverse klassen static member welche in den cpp files der dll initialisiert werden wie zb singleton instanzen und konstanten</p>
<p>wenn ich in einem zweiten projekt als &quot;Empty Project&quot; erstellt auf die DLL zugreifen will und eine der *.h files der klassen inkludiere welche statische member haben bekomme ich linker errors der form</p>
<pre><code>error LNK2001: unresolved external symbol &quot;private: static float const PinkballsOpenGL::Math::Geometry::PI_BY_180&quot;
</code></pre>
<p>wenn die static member der klassen also nach außen hin sichtbar sind für das projekt welches die dll benutzt oder auch schon in einer methode verwendet werden die nach außen hin sichtbar ist wird für sie ein linker error generiert</p>
<p>meine frage ist jetzt wie man das anstellen soll dass man in der DLL statische variablen die member von C++ klassen sind initialisieren kann und sie in dem programm welches die DLL benutzt verwenden kann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207216/static-variablen-in-dlls</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 01:28:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207216.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Mar 2008 23:30:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Static variablen in DLLs on Tue, 04 Mar 2008 23:30:52 GMT]]></title><description><![CDATA[<p>hey, ich hab ein dll projekt in visual studio erstellt indem ich ein neues &quot;Class Library&quot; projekt gemacht habe und anschließend /clr deaktiviert und auf &quot;no common language runtime support&quot; gestellt habe</p>
<p>in der DLL haben diverse klassen static member welche in den cpp files der dll initialisiert werden wie zb singleton instanzen und konstanten</p>
<p>wenn ich in einem zweiten projekt als &quot;Empty Project&quot; erstellt auf die DLL zugreifen will und eine der *.h files der klassen inkludiere welche statische member haben bekomme ich linker errors der form</p>
<pre><code>error LNK2001: unresolved external symbol &quot;private: static float const PinkballsOpenGL::Math::Geometry::PI_BY_180&quot;
</code></pre>
<p>wenn die static member der klassen also nach außen hin sichtbar sind für das projekt welches die dll benutzt oder auch schon in einer methode verwendet werden die nach außen hin sichtbar ist wird für sie ein linker error generiert</p>
<p>meine frage ist jetzt wie man das anstellen soll dass man in der DLL statische variablen die member von C++ klassen sind initialisieren kann und sie in dem programm welches die DLL benutzt verwenden kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468459</guid><dc:creator><![CDATA[Vevusio]]></dc:creator><pubDate>Tue, 04 Mar 2008 23:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to Static variablen in DLLs on Wed, 05 Mar 2008 12:23:42 GMT]]></title><description><![CDATA[<p>Vevusio schrieb:</p>
<blockquote>
<p>... statische variablen die member von C++ klassen sind initialisieren kann ...</p>
</blockquote>
<p>*.h<br />
-----------</p>
<pre><code class="language-cpp">class A
{
    static int a;
};
</code></pre>
<p>*.cpp<br />
----------</p>
<pre><code class="language-cpp">static int A::a = 0;
</code></pre>
<p>Hast du auch die *.lib Datei dem Linker bekannt gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468729</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Wed, 05 Mar 2008 12:23:42 GMT</pubDate></item><item><title><![CDATA[Reply to Static variablen in DLLs on Wed, 05 Mar 2008 13:00:59 GMT]]></title><description><![CDATA[<p>die dll h file aus dem dll projekt</p>
<pre><code>// TestDLL.h

#pragma once

namespace TestDLL {

	class __declspec(dllexport) Class1
	{
	public:
		static const float FLOATCONSTANT;
	};
}
</code></pre>
<p>die cpp file dazu</p>
<pre><code>// TestDLL.cpp

#include &quot;stdafx.h&quot;

#include &quot;TestDLL.h&quot;

const float TestDLL::Class1::FLOATCONSTANT = 23.32f;
</code></pre>
<p>und die main aus einem zweiten projekt welche diese dll verwendet</p>
<pre><code>//Main.cpp
#include &quot;TestDLL.h&quot;
#include &lt;iostream&gt;

#pragma comment(lib, &quot;TestDLL.lib&quot;)

using TestDLL::Class1;
using std::cout;

int main(int argc, char **argv)
{
	cout &lt;&lt; Class1::FLOATCONSTANT;
	return 0;
}
</code></pre>
<p>liefert den linker error</p>
<pre><code>error LNK2001: unresolved external symbol &quot;public: static float const TestDLL::Class1::FLOATCONSTANT&quot; (?FLOATCONSTANT@Class1@TestDLL@@2MB)	Main.obj
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1468755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468755</guid><dc:creator><![CDATA[Vevusio]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Static variablen in DLLs on Wed, 05 Mar 2008 13:19:09 GMT]]></title><description><![CDATA[<p>Versuch ohne das const.</p>
<p>einfach</p>
<pre><code class="language-cpp">...
static float FLOATCONSTANT;
...
</code></pre>
<p>[cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468771</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:19:09 GMT</pubDate></item><item><title><![CDATA[Reply to Static variablen in DLLs on Wed, 05 Mar 2008 21:03:59 GMT]]></title><description><![CDATA[<p>also weiss irgend jemand ob das überhaupt möglich ist bzw wenn ja ob es eh so gehen sollte und an meinen compiler einstellungen liegt in dem fall?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1469078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469078</guid><dc:creator><![CDATA[Vevusio]]></dc:creator><pubDate>Wed, 05 Mar 2008 21:03:59 GMT</pubDate></item><item><title><![CDATA[Reply to Static variablen in DLLs on Wed, 05 Mar 2008 22:21:05 GMT]]></title><description><![CDATA[<p>Was mir jetzt auffählt, du verwendest die gleiche<br />
class declaration in &quot;dll projekt&quot; und &quot;exe projekt&quot;.<br />
In &quot;exe projekt&quot; muss sie</p>
<p>class __declspec(dllimport) Class1 ...</p>
<p>heissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1469104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469104</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Wed, 05 Mar 2008 22:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to Static variablen in DLLs on Wed, 05 Mar 2008 23:05:32 GMT]]></title><description><![CDATA[<p>omg -.-</p>
<p>das ist jetzt schon fast peinlich *g*</p>
<p>es lag wirklich daran, vielen dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1469114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469114</guid><dc:creator><![CDATA[Vevusio]]></dc:creator><pubDate>Wed, 05 Mar 2008 23:05:32 GMT</pubDate></item></channel></rss>