<?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[Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>Ich schreibe gerade an einem Programm, in dem ich viele abgeleitete Klassen benötige, da z.B. CListCtrl nicht alle Funktionen aufweist die ich gerne hätte.<br />
Also leite ich die Klasse ab -&gt; CListCtrlEx.<br />
Da ich in Zukunft auch noch weitere Projekte starten möchte, möchte ich soweit es geht die Klasse generalisiert lassen, um ggf. die Klasse dort erneut zu verwenden.<br />
Die Funktionen sind recht simple gehalten, wie z.b. bei AddColumn eine automatische Spalten anpassung usw.</p>
<p>Mein Problem ist nun folgenes. Ich möchte ähnlich wie bei der MFC eine Art Bibliothek von meinen eigenen entworfenen Klassen erstellen. D.h. ich habe einen Ordner z.B. &quot;MyIncludes&quot;. Dort befinden sich die Header-Dateien mit den dazugehörigen Lib-Dateien. Starte ich nun ein neues Projekt, möchte ich die Header in der stdafx.h einbinden und, falls nötig, die Lib in den Linkeropionen angeben.</p>
<p>Wie stelle ich das an? Eine DLL möchte ich ja nicht erstellen und dazu habe ich bereits haufenweise Themen gefunden, aber konkret wie man sich nur eine auf LIB beschränk ist leider nicht zu finden.</p>
<p>Vielen Dank im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196237/bibliothek-lib-aus-einer-abgeleiteten-mfc-klasse-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 12:00:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196237.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 27 Oct 2007 09:28:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Sat, 27 Oct 2007 09:28:38 GMT]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>Ich schreibe gerade an einem Programm, in dem ich viele abgeleitete Klassen benötige, da z.B. CListCtrl nicht alle Funktionen aufweist die ich gerne hätte.<br />
Also leite ich die Klasse ab -&gt; CListCtrlEx.<br />
Da ich in Zukunft auch noch weitere Projekte starten möchte, möchte ich soweit es geht die Klasse generalisiert lassen, um ggf. die Klasse dort erneut zu verwenden.<br />
Die Funktionen sind recht simple gehalten, wie z.b. bei AddColumn eine automatische Spalten anpassung usw.</p>
<p>Mein Problem ist nun folgenes. Ich möchte ähnlich wie bei der MFC eine Art Bibliothek von meinen eigenen entworfenen Klassen erstellen. D.h. ich habe einen Ordner z.B. &quot;MyIncludes&quot;. Dort befinden sich die Header-Dateien mit den dazugehörigen Lib-Dateien. Starte ich nun ein neues Projekt, möchte ich die Header in der stdafx.h einbinden und, falls nötig, die Lib in den Linkeropionen angeben.</p>
<p>Wie stelle ich das an? Eine DLL möchte ich ja nicht erstellen und dazu habe ich bereits haufenweise Themen gefunden, aber konkret wie man sich nur eine auf LIB beschränk ist leider nicht zu finden.</p>
<p>Vielen Dank im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392881</guid><dc:creator><![CDATA[genesis200a]]></dc:creator><pubDate>Sat, 27 Oct 2007 09:28:38 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 08:36:31 GMT]]></title><description><![CDATA[<p>Das ist nichts gheimnisvolles. Der Projekt Wizard hilft Dir dabei.</p>
<p>In jedem Fall musst Du für jeden Projekttyp eine eigene Lib erzeugen. Debug/Release, macht schon zwei. Wenn Du unterschiede in Unicode/MBCS machst hast Du 4. Wenn Du jetzt noch zwischen statischer und dynamischer MFC unterscheidest hättest Du wieder doppelt so viele.</p>
<p>Entsprechend solltest Du die LIBs benennen. U am Ende für Unicode. S für statisch etc.</p>
<p>In den Header kannst Du entsprechend gleich ein #pragma comment(lib,&quot;libname.lib&quot;) einbauen und damit sparst Du die die Anpassung der Linker OPptionen in Deinen Projekten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393947</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 29 Oct 2007 08:36:31 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 10:34:02 GMT]]></title><description><![CDATA[<blockquote>
<p>Der Projekt Wizard hilft Dir dabei</p>
</blockquote>
<p>Martin, welchen Projekttyp wählst Du denn aus? Ich hätte jetzt vermutet &quot;Klassenbibliothek&quot;, aber da entsteht auch eine DLL und die ganze MFC muss man außerdem hinzufügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394007</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 29 Oct 2007 10:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 11:23:01 GMT]]></title><description><![CDATA[<p>Win32 -&gt; Win32 Porject -&gt; Static Library</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394042</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 29 Oct 2007 11:23:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 12:20:58 GMT]]></title><description><![CDATA[<p>Danke Martin, manchmal ist man blind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394076</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 29 Oct 2007 12:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 12:51:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>um das jetzt nochmal nach zuvollziehen.<br />
1. Ich erstelle eine Win32 Static Bibliothek.<br />
2. Dabei wähle ich MFC unterstützung an<br />
3. Kopiere meine Klasse hinein<br />
4. Kompiliere das Ganze<br />
5. Ich include die Header und binde mit #pragma comment(lib,&quot;libname.lib&quot;) die lib ein<br />
6. Kompiliere das gesamte Projekt</p>
<p>Ist das soweit richtig?</p>
<p>Also wenn ich das so mache bekomme ich folgene Linker-Fehler:</p>
<pre><code>CListCtrlEx.lib(ListCtrlEx.obj) : Es wurde ein mit /GL kompiliertes MSIL .netmodule oder module gefunden. Verknüpfung wird mit /LTCG erneut gestartet. Fügen Sie /LTCG zur Verknüpfungsbefehlszeile hinzu, um die Verknüpfungsleistung zu erhöhen.
LINK : warning LNK4075: /INCREMENTAL wird aufgrund der Angabe von /LTCG ignoriert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: unsigned long __thiscall CListCtrl::SetExtendedStyle(unsigned long)&quot; (?SetExtendedStyle@CListCtrl@@QAEKK@Z) ist bereits in nafxcwd.lib(winctrl6.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: int __thiscall CHeaderCtrl::GetItemCount(void)const &quot; (?GetItemCount@CHeaderCtrl@@QBEHXZ) ist bereits in nafxcwd.lib(winctrl2.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: int __thiscall CListCtrl::SetColumnWidth(int,int)&quot; (?SetColumnWidth@CListCtrl@@QAEHHH@Z) ist bereits in nafxcwd.lib(winctrl2.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;protected: virtual void __thiscall CWnd::DoDataExchange(class CDataExchange *)&quot; (?DoDataExchange@CWnd@@MAEXPAVCDataExchange@@@Z) ist bereits in nafxcwd.lib(afxinl3.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: virtual void __thiscall CObject::Serialize(class CArchive &amp;)&quot; (?Serialize@CObject@@UAEXAAVCArchive@@@Z) ist bereits in nafxcwd.lib(afxinl1.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: virtual void __thiscall CWnd::BeginModalState(void)&quot; (?BeginModalState@CWnd@@UAEXXZ) ist bereits in nafxcwd.lib(afxinl3.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: virtual void __thiscall CObject::AssertValid(void)const &quot; (?AssertValid@CObject@@UBEXXZ) ist bereits in nafxcwd.lib(objcore.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: virtual void __thiscall CObject::Dump(class CDumpContext &amp;)const &quot; (?Dump@CObject@@UBEXAAVCDumpContext@@@Z) ist bereits in nafxcwd.lib(objcore.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: virtual void __thiscall CWnd::EndModalState(void)&quot; (?EndModalState@CWnd@@UAEXXZ) ist bereits in nafxcwd.lib(afxinl3.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: __thiscall CListCtrl::CListCtrl(void)&quot; (??0CListCtrl@@QAE@XZ) ist bereits in nafxcwd.lib(winctrl2.obj) definiert.
CListCtrlEx.lib(ListCtrlEx.obj) : error LNK2005: &quot;public: static void __stdcall CObject::operator delete(void *)&quot; (??3CObject@@SGXPAX@Z) ist bereits in nafxcwd.lib(afxmem.obj) definiert.
msvcrt.lib(ti_inst.obj) : error LNK2005: &quot;private: __thiscall type_info::type_info(class type_info const &amp;)&quot; (??0type_info@@AAE@ABV0@@Z) ist bereits in libcmtd.lib(typinfo.obj) definiert.
msvcrt.lib(ti_inst.obj) : error LNK2005: &quot;private: class type_info &amp; __thiscall type_info::operator=(class type_info const &amp;)&quot; (??4type_info@@AAEAAV0@ABV0@@Z) ist bereits in libcmtd.lib(typinfo.obj) definiert.
nafxcwd.lib(nolib.obj) : warning LNK4098: Standardbibliothek &quot;mfc80u.lib&quot; steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
nafxcwd.lib(nolib.obj) : warning LNK4098: Standardbibliothek &quot;mfcs80u.lib&quot; steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
libcmtd.lib(crt0init.obj) : warning LNK4098: Standardbibliothek &quot;msvcrt.lib&quot; steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
</code></pre>
<p>Passiert aber nur, wenn ich in der statischen Bibliothek eine öffentliche DLL der MFC verwende... bei einer statisch gelinkten bekomme ich 742 Fehler, da alles schon definiert ist, da mein Hauptprojekt auch die statisch gelinkte MFC DLL benutz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394084</guid><dc:creator><![CDATA[genesis200a]]></dc:creator><pubDate>Mon, 29 Oct 2007 12:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 12:57:56 GMT]]></title><description><![CDATA[<p>Bei mir funktioniert es -auch mit einer öff. DLL, allerdings habe ich die LIB so dem Projekt hinzugefügt (Punkt 5), wie ich es auch mit anderen Bilbliotheken gemacht habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394095</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 29 Oct 2007 12:57:56 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 13:39:40 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17939">@genesis200a</a></p>
<p>Deine Projekteinstellungen sind mit Sicherheit für LIB und EXE nicht identisch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394114</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 29 Oct 2007 13:39:40 GMT</pubDate></item><item><title><![CDATA[Reply to Bibliothek (*.lib) aus einer abgeleiteten MFC-Klasse erstellen on Mon, 29 Oct 2007 15:17:00 GMT]]></title><description><![CDATA[<p>Also das stimmt schon. Ich habe in meinem Hauptprogramm eine MFC-Applikation als Assistent-Typ ausgewählt. Wie weit muss ich dann die Win32 Lib in den Projekt-Einstellungen abändern? Das Lib-Projekt ist eine Win32 Lib die MFC unterstützt und eine vorkompilierte Header-Datei, in der ich zusätzlich noch die afxcmn.h eingebunden habe, da er sonst CListCtrl ja nicht findet.<br />
Es ist klar, dass wenn er die MFC statisch in die Lib einbindet und das gesamte Paket noch einmal in die EXE, dass alle MFC Komponenten doppelt vorkommen.<br />
Die Lib ist auch 1.6 MB groß, was eig. viel zuviel ist. Ohne MFC kann ich aber keine Klasse von CListCtrl ableiten...</p>
<p>[EDIT]<br />
So, also ich habs nun hinbekommen. Es war nur eine kleine Umstellung in den Projekteinstellungen nötig...<br />
Alle Konfigurationen -&gt; Allgemein<br />
Dann unter Projektstandards -&gt; Zeichensatz ( z.B. Multi-Byte-Zeichensatz )<br />
Wenn die Werte nicht übereinstimmen passt das ganze!<br />
[/EDIT]</p>
<p>Vielen Dank für eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394159</guid><dc:creator><![CDATA[genesis200a]]></dc:creator><pubDate>Mon, 29 Oct 2007 15:17:00 GMT</pubDate></item></channel></rss>