hi hab ein Probleme bei der Erstellung von einer Klassenbibliotek(mit MS VC++ 200
.
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.