You are not logged in.

  • Login

1

Wednesday, April 6th 2011, 7:35pm

C2375 bei Tastenabfrage?

Hallo!
Ich bestimme die Funktion bool a(sf::Event &Event, sf::Window &App) doch bekomme ich den Fehler C2375.
Ich verstehe es nicht. Vorher gab er noch den Fehler C2461 ausgegeben, doch den konnte ich beheben. - Auch wenn ich nicht genau weiß was der Grund war. :D
Der Syntax:
Framework_Datei.cpp:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
#include "Framework_Header.hpp"
 
bool DLL_FRAMEWORK_API lwtFramework::Events::a(sf::Event &Event, sf::Window &App)
{
	if(App.GetInput().IsMouseButtonDown(sf::Mouse::Left))
		return true;
	else
		return false;
}

Framework_Header.hpp:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "Framework.hpp" //Framework
#include <SFML\System.hpp> //SFML-System
#include <SFML\Window.hpp> //SFML-Window
 
namespace lwtFramework
{
	class Events
	{
	public:
		Events();
		bool a(sf::Event &Event, sf::Window &App);
                private:
                                sf::Event *Event;
                                sf::Window *App;
                }
}

Framework.hpp:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
#ifndef FRAMEWORK_HPP //Start des 
#define FRAMEWORK_HPP //"Waechters".
 
#if _USRDLL //Importieren und Exportieren der DLL
 #define DLL_FRAMEWORK_API _declspec(dllexport) //Schluesselwort
#else
 #define DLL_FRAMEWORK_API _declspec(dllexport) //Schluesselwort
#endif
 
#endif


Danke!

MfG
Check

2

Sunday, April 10th 2011, 3:11pm

Keiner eine Idee?

MfG
Check

3

Monday, April 11th 2011, 5:23pm

Sieht mal auf den ersten Blick in Ordnung aus.

Vielleicht will der dass du noch den Konstruktor definierst, oder du bindest zwei verschieden Versionen deiner Headerdateien ein, kann man jetzt nciht genau sagen.

Mfg Rushh0ur

4

Monday, April 11th 2011, 8:09pm

Konstruktor habe ich noch hinzugefügt, doch jetzt tritt auch dort der Fehler auf. Bisschen auffällig, also hat es scheinbar nichts mit den Funktionen und dem Konstruktor zu tun.
Wie meinst du das mit "verschieden einbinden"?
Habe einmal Framework.hpp wo der "Wächter" drin ist und dann die Header Datei mit der Klasse drin, also Framework_Header.hpp. ...?

MfG
Check

5

Monday, April 11th 2011, 9:19pm

Damit hab ich gemeint dass du sie zweimal, unter umständen rekursiv, eingebunden hast, aber es liegt glaub ich an was anderem.

Änder mal folgendes in der Framework_Header.hpp (das wird wohl den C2375 Fehler auslösen):

Quoted


class DLL_FRAMEWORK_API Events


Und in der Framework.hpp:

Quoted


#if _USRDLL //Importieren und Exportieren der DLL
#define DLL_FRAMEWORK_API _declspec(dllexport) //Schluesselwort
#else
#define DLL_FRAMEWORK_API _declspec(dllimport) //Schluesselwort
#endif

Sonst kannst du die DLL nicht in deiner Exe benutzen.

Mfg Rushh0ur

6

Monday, April 11th 2011, 9:31pm

Das bringt mich zu LNK2019. Also "Verweis auf nicht aufgelöstes, externes Symbol.
Habe die Deklaration usw. schon überprüft.... :huh:

MfG
Check

7

Monday, April 11th 2011, 9:36pm

Ok der Fehler ist schon mal "humaner", was genau steht beim Fehler?

Benötigte Biblotheken (LIB) verlinkt?

Mfg Rushh0ur

8

Monday, April 11th 2011, 9:47pm

Hatte ohne Funktionsinhalt das ganze kompiliert.
Nun mit Funktionsinhalt:
1>------ Erstellen gestartet: Projekt: Framework, Konfiguration: Debug Win32 ------
1> Framework_Datei.cpp
1>c:\users\m\desktop\framework\framework\framework_datei.cpp(3): error C2143: Syntaxfehler: Es fehlt ';' vor 'lwtFramework::Events::a'
1>c:\users\m\desktop\framework\framework\framework_datei.cpp(4): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\m\desktop\framework\framework\framework_datei.cpp(4): error C2556: 'int lwtFramework::Events::a(sf::Event &,sf::Window &)': Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'bool lwtFramework::Events::a(sf::Event &,sf::Window &)'
1> c:\users\m\desktop\framework\framework\framework_header.hpp(11): Siehe Deklaration von 'lwtFramework::Events::a'
1>c:\users\m\desktop\framework\framework\framework_datei.cpp(4): error C2371: 'lwtFramework::Events::a': Neudefinition; unterschiedliche Basistypen
1> c:\users\m\desktop\framework\framework\framework_header.hpp(11): Siehe Deklaration von 'lwtFramework::Events::a'
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


MfG
Check

9

Tuesday, April 12th 2011, 2:39pm

Hinter Struktur- und Klassendeklerationen muss immer ein Semikolon gesetzt werden:

Quoted


...
class DLL_FRAMEWORK_API Events
{
...
};
---

Mfg Rushh0ur

10

Tuesday, April 12th 2011, 7:48pm

Ich weiß. Ist leider vorhanden.

MfG
Check

11

Saturday, April 23rd 2011, 10:13pm

D:

Echt keine Idee? Sitze hier ganz verdutzt vor dem Ding.... :(

MfG
Check

12

Sunday, April 24th 2011, 1:09am

Ich weiß. Ist leider vorhanden.

MfG
Check

D:

Echt keine Idee? Sitze hier ganz verdutzt vor dem Ding.... :(

MfG
Check


Wie wär es mit trial and error?
Ne im ernst, dass ist schon meiner Meinung etwas dreist die Aussage.

Damit das nicht assozial rüber kommt biete ich dir an, dass du dein Projekt hochlädst und ich verbesser es dir, sobald ich Zeit habe.

Mfg Rushh0ur

13

Sunday, April 24th 2011, 1:58am

Ich sitze ja nicht nur herum und warte!
Der Eindruck sollte gar nicht entstehen. Ich gehe schon Schritt für Schritt vor und suche so den Fehler.

Eigentlich reicht der Syntax, mit was anderem hat es ja gar nicht zu tun, oder? (rhetorische Frage)

MfG
Check

14

Sunday, April 24th 2011, 10:45am

Eigentlich brauchst du nichts anderes zu tun als die Fehler abzuklappern, und zwar in der Rehienfolge in der diese Angegeben werden.

Wenn da steht

Quoted

1>c:\users\m\desktop\framework\framework\framework_datei.cpp(3): error C2143: Syntaxfehler: Es fehlt ';' vor 'lwtFramework::Events::a'

Dann gehst du in die angegeben Datei und in die angegeben Zeile und prüfst was da Falsch ist:

Quoted


bool DLL_FRAMEWORK_API (hier soll ein ; laut dem Fehler hin?) lwtFramework::Events::a(sf::Event &Event, sf::Window &App)


Nun kein Plan dann mal ab auf die Syntaxsuche ....
Mit etwas Inetsuche ->

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifdef TESTDLL_EXPORTS
#define TESTDLL_API __declspec(dllexport)
#else
#define TESTDLL_API __declspec(dllimport)
#endif
 
// Diese Klasse wird aus testdll.dll exportiert.
namespace myNameSpace
{
	class TESTDLL_API Ctestdll {
	public:
		Ctestdll(void);
		// TODO: Hier die Methoden hinzufügen.
	};
}
 
...
 
myNameSpace::Ctestdll::Ctestdll()
{
	return;
}


Wenn man dies richtig interpretiert bemerkt man dass dein DLL_FRAMEWORK_API an deiner Stelle falsch platziert ist und komplett weg muss.
Und nur im Header nach dem Bezeichner class hin muss.

Hoffe das löst dein Problem.

Mfg Rushh0ur

15

Tuesday, June 7th 2011, 9:53pm

Tritt leider weiterhin ein.

MfG
Check

Similar threads

Social bookmarks