Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 17.05.2006, 19:12 Titel: dll und Warnung C4251 |
|
|
Ich bekomme in einem dll projekt laufen warnung wegen klassen, die eine dll-schnittstelle benötigen. Hier erstmal die genaue Warnung:
Code: | class 'std::list<_Ty>' erfordert eine DLL-Schnittstelle, die von Clients von class 'CE::Graphic::Font' verwendet wird |
das bezieht sich auf dieses hier:
CPP: | std::list<SFont> _lstFont; |
Wobei SFont eine Structur ist, die so angelegt ist:
CPP: | struct CEDLL SFont
{
LPTSTR strFontName;
LPD3DXFONT lpFont;
bool bBitmapFont;
DWORD dwFontHeight; // Height of Font (needed for BitmapFonts)
CE::Math::Vector2 vecTopLeft[256]; // tu - Coordinate / char
CE::Math::Vector2 vecBottomRight[256]; // tv - Coordinate / char
DWORD dwCharWidth[256]; // width of each char
LPTSTR strBitmapFile; // Texturpath;
LPTSTR strIniFile; // Ini-Path;
}; |
Das CEDLL sorgt halt für das entsprechende __declspec.
Wer kann mir sagen, wie ich diese dusselige Warnung wegbekomme? Was muss ich ändern? _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 17.05.2006, 19:49 Titel: |
|
|
Wenn es dir nur darum geht, dass die Warnung nicht mehr angezeigt werden soll:
CPP: | #pragma warning (disable : 4251) |
Ansonsten weis ich auch nicht weiter. _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 17.05.2006, 19:56 Titel: |
|
|
Ja, und weißt du was noch viel toller ist? Compilerwarnungen gleich ganz abschalten... Wer braucht schon Compilerwarnungen? :P Und wenn wir einmal dabei sind, schalten wir doch gleich noch die Errors aus... herjemine, wer hat nur sowas Dussliges erfunden... Errors... braucht doch kein Schwein! :P
So löst man aber keine "potenziellen" Probleme...! :P |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 36 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 17.05.2006, 20:41 Titel: |
|
|
http://support.microsoft.com/kb/168958/ _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 18.05.2006, 15:23 Titel: |
|
|
Der Abschluss hat irgendwie etwas besonderes an sich:
Zitat: | In the .exe file, provide the extern and __declspec specifiers in the template instantiation declaration to import the class from the DLL. This results in a warning C4231 "nonstandard extension used : 'extern' before template explicit instantiation." You can ignore this warning. |
_________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 22.05.2006, 19:02 Titel: |
|
|
Also es ist ja nicht so, das das wirklich einwandfrei klappt.
Zu diesem Beispiel hab ich zumindest mal eine Frage und zwar zu diesem Teil:
CPP: | class DECLSPECIFIER MyClass
{
public:
std::vector<int> VectorOfInts;
static std::vector<char> StaticVectorOfChars;
public:
bool operator < (const MyClass > c) const
{
return VectorOfInts < c. VectorOfInts;
}
bool operator == (const MyClass > c) const
{
return VectorOfInts == c. VectorOfInts;
}
}; |
Und zwar: wo um Himmels willen haben die dieses "c" z.B. von (const MyClass > c) her?!?!?! _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 22.05.2006, 20:37 Titel: |
|
|
Bin mir nicht sicher, ob ich dich richtig verstanden habe, aber 'c' ist doch einfach ein Objekt vom Typ 'MyClass', das temporär in den Methoden (also den überladenen Operatoren) erzeugt wird.
Nur dieses '>' und '<' in den Parameterlisten ist komisch und gehört da eigentlich nicht hin. |
|
Nach oben |
|
|
schneidi74 Senior JLI'ler
Anmeldedatum: 14.05.2004 Beiträge: 243
Medaillen: Keine
|
Verfasst am: 23.05.2006, 05:45 Titel: |
|
|
eben, und genau das hat mich so verwundert... funktioniert auch nicht ... nene, nix als ärger mit microsoft... _________________ -+- SchNeiDi74 -+-
-+- www.creative-games.de -+- |
|
Nach oben |
|
|
|