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

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

02.02.2010, 16:00

Klassenbibliotek mit MS VC++ 2008

hi hab ein Probleme bei der Erstellung von einer Klassenbibliotek(mit MS VC++ 2008).

1.
Ich benutzt dabei Freetype das Problem ist jetzt freetype benutzt da ein Schlüsselwörter von VC++, "generic" und dabei kommen fehler zustande:
freetype/freetype.h(914) : error C2059: Syntaxfehler: 'generic'
freetype/freetype.h(914) : error C2238: Unerwartete(s) Token vor ';'
freetype/freetype.h(1315) : error C2059: Syntaxfehler: 'generic'
freetype/freetype.h(1315) : error C2238: Unerwartete(s) Token vor ';'
freetype/freetype.h(1523) : error C2059: Syntaxfehler: 'generic'
freetype/freetype.h(1523) : error C2238: Unerwartete(s) Token vor ';'

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//freetype.h

//...

    FT_String*        family_name;
    FT_String*        style_name;

    FT_Int            num_fixed_sizes;
    FT_Bitmap_Size*   available_sizes;

    FT_Int            num_charmaps;
    FT_CharMap*       charmaps;

    FT_Generic        generic;

    /*# The following member variables (down to `underline_thickness') */
    /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size    */
    /*# for bitmap fonts.                                              */
    FT_BBox           bbox;

    FT_UShort         units_per_EM;
//...

typedef struct  FT_SizeRec_
  {
    FT_Face           face;      /* parent face object              */
    FT_Generic        generic;   /* generic pointer for client uses */
    FT_Size_Metrics   metrics;   /* size metrics                    */
    FT_Size_Internal  internal;

  } FT_SizeRec;
//...

typedef struct  FT_GlyphSlotRec_
  {
    FT_Library        library;
    FT_Face           face;
    FT_GlyphSlot      next;
    FT_UInt           reserved;       /* retained for binary compatibility */
    FT_Generic        generic;

    FT_Glyph_Metrics  metrics;
//...


2.
Wofür ist den das "public ref" vor jeder class und was ist mit:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#if defined(WIN32) || defined(_Windows) || defined(__WIN32__)
        #if defined(_WINDLL)
            #define DLL __declspec(dllexport)
        #else
            #define DLL __declspec(dllimport)
        #endif
    #else
        #define DLL
    #endif

..wird das noch gebraucht.

3.
Hab da noch einige Syntax Fehler:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
template class DLL std::allocator<int>;
template class DLL std::allocator<char>;
template class DLL std::basic_string<char, std::char_traits<char>, std::allocator<char> >;
template class DLL std::allocator< std::basic_string<char, std::char_traits<char>, std::allocator<char> > >;
template class DLL std::vector< std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char> > >;

template class DLL std::basic_ios<char, std::char_traits<char> >;
template class DLL std::basic_ostream<char, std::char_traits<char> >;
template class DLL std::basic_iostream<char, std::char_traits<char> >;
template class DLL std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >;
template class DLL std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >;

Fehler:
error C2960: "std::allocator<_Ty>": Inkonsistente explizite Instanziierungen. In einer früheren expliziten Instanziierung wurde "extern template" angegeben.
error C2960: "std::basic_string<_Elem,_Traits,_Ax>": Inkonsistente explizite Instanziierungen. In einer früheren expliziten Instanziierung wurde "extern template" angegeben.
error C2960: "std::basic_ios<_Elem,_Traits>": Inkonsistente explizite Instanziierungen. In einer früheren expliziten Instanziierung wurde "extern template" angegeben.
error C2960: "std::basic_ostream<_Elem,_Traits>": Inkonsistente explizite Instanziierungen. In einer früheren expliziten Instanziierung wurde "extern template" angegeben.
error C2960: "std::basic_iostream<_Elem,_Traits>": Inkonsistente explizite Instanziierungen. In einer früheren expliziten Instanziierung wurde "extern template" angegeben.
error C2960: "std::basic_stringstream<_Elem,_Traits,_Alloc>": Inkonsistente explizite Instanziierungen. In einer früheren expliziten Instanziierung wurde "extern template" angegeben.
error C2960: "std::basic_ostringstream<_Elem,_Traits,_Alloc>": Inkonsistente explizite Instanziierungen. In einer früheren expliziten Instanziierung wurde "extern template" angegeben.