Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

1

27.05.2006, 20:32

stl objekte in dll auslagern

hi leutz,

ich hab ein großes problem dabei eine klasse, die std::vector nutzt in eine dll auszulagern nachdem ich mir dieses beispiel angesehen habe

ich verwende diese struktur zur aufbewahrung einiger daten:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
    struct __declspec(dllexport) SSoundGroup
    {
        DWORD dwGroupID;
        float fVolume;
        float fPan;
    };// SSoundGroup


    __declspec(dllexport) BOOL operator < (const SSoundGroup& a, const SSoundGroup& b);
    __declspec(dllexport) BOOL operator == (const SSoundGroup& a, const SSoundGroup& b);

    template class __declspec(dllexport) std::vector<SSoundGroup>;


und lege die in meiner settings klasse in einem vector ab

C-/C++-Quelltext

1
2
3
4
5
6
    // sound settings controll class

    class __declspec(dllexport) Settings
    {
    /*...*/
        std::vector<SSoundGroup> _vGroups;
    };


und wenn ich die dll jetzt kompiliere, dann geht das zwar fehler frei aber ich bekomm andauernd so blöde warnigs:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
d:\Programmieren\Visual Studio .NET 2003\Vc7\include\vector(35) : warning C4251: 'std::_Vector_val<_Ty,_Alloc>::_Alval': class 'std::allocator<_Ty>' erfordert eine DLL-Schnittstelle, die von Clients von class 'std::_Vector_val<_Ty,_Alloc>' verwendet wird
        with
        [
            _Ty=CE::Sound::SSoundGroup,
            _Alloc=std::allocator<CE::Sound::SSoundGroup>
        ]
        and
        [
            _Ty=CE::Sound::SSoundGroup
        ]
        and
        [
            _Ty=CE::Sound::SSoundGroup,
            _Alloc=std::allocator<CE::Sound::SSoundGroup>
        ]
        d:\Eigene Dateien\Visual Studio Projects\Games\engines\CE2-Engine\My Work\Sound\Sound v01.5\CE2\include\Sound\CESoundSettings.h(47): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'std::vector<_Ty>'
        with
        [
            _Ty=CE::Sound::SSoundGroup
        ]


wie bekomme ich die weg???

ich hab im inet nichts weiter dazu gefunden
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

ext

Treue Seele

  • Private Nachricht senden

2

27.05.2006, 22:19

Aber ich habe was gefunden http://www.gamedev.net/community/forums/topic.asp?topic_id=18667 :)

Lemming

Alter Hase

  • »Lemming« ist der Autor dieses Themas

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

3

27.05.2006, 22:24

ext
thx ich werds mir morgen nochmal genauer ansehen....
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Werbeanzeige