|
|
#1 (permalink) | ||||||||||||
|
Erfahrener Benutzer
|
Hallo,
ich bin gerade dabei ein unter MacOS funktionsfähiges Projekt unter Windows zu kompilieren. Das Projekt ist Modular in Bibliotheken (unter Win jetzt DLLs) gegliedert. In einer DLL (nennen wir sie mal CommonDLL) befinden sich von allen Komponenten gemeinsam genutzer Code. Darunter ist u.a. auch ein Singleton-Template singleton.h Code:
In ClassXY.h wird dann das Singleton aus der Klasse per typedef definiert. Code:
Innerhalb der CommonDLL wird dann auf die Instanz per SingletonClassXY::Get() zugegriffen. Das gleiche auch in den Komponenten, die die CommonDLL nutzen. Das Problem: Jede Komponente hat sein eigene SingletonClassXY-Instanz. Jeder Aufruf von Get() führt in jeder Komponente also dazu, dass eine neue Instanz erzeugt wird. Lösung: Der Singleton-Code darf nicht mehrfach erzeugt werden und das geht wohl mit __declspec(dllexport) bzw. __declspec(dllimport). Allerdings habe ich es noch nicht geschafft. In der ClassXY.h habe ich folgendes hinzugefügt: Code:
Code:
Allerdings bleibt das Problem nach wie vor bestehen. edit: Habs jetzt hinbekommen. Die Änderungen hab ich mal rot hinzugefügt. Die Prärpozessordirektiven (ab #ifdef EXPORTS ...) müssen irgendwo zentral liegen und entsprechend erweitert werden um das Schlüsselwort "extern" bei Bedarf hinzufügen zu können. Auch das Singleton muss dann mit __declspec(dllexport) gekennzeichnet werden. Ganz wichtig auch diese Zeile: EXPIMP_TEMPLATE template class IMEXP Singleton<ClassXY>; Aber rein aus Interesse: Warum ging das unter MacOS? Ist das shared Library-Prinzip dort anders? Weiß das jemand? Geändert von robert (07.05.2011 um 19:03:16 Uhr) |
||||||||||||
|
|
|
![]() |
| Gesponsorte Links |
| Anzeige |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [V] Günstige Paidbanner/Paidlinks/Autosurf-View/Paidmails/ect auf mehreren Projekten | Promizock | Lose4Werbung | 6 | 03.04.2009 02:38:23 |
| Liste von GPL Projekten | Papenburger | Scripts & Software | 1 | 30.06.2008 21:36:41 |
| [V]Paidmailpakete & Forcedklicks auf 4 Projekten! | Top-Mailer.de | Lose4Werbung | 9 | 19.11.2007 16:10:53 |
| Slots in mehreren Fenstern spielen - Nutzen?! | Jipii | Lose-Talk | 21 | 21.10.2006 08:46:03 |
| Allgemeine Frage zu Projekten. | renner | Lose-Talk | 4 | 16.10.2006 00:14:27 |