CreateApplication VS2019 Problem. BE::CreateApplication();



  • Hallo alle zusammen. Ich bin so langsam am Verzweifeln. Ich arbeite gerade an einem Projekt und komme nicht weiter.Aktuell errichte ich nen Schnipsel der für das Erstellen, Import und Export einer Library sein soll.

    Im Entry Point habe ich das geschrieben:

    #pragma once
    
    #ifdef BE_PLATFORM_WINDOWS
    
    extern BE::Engine *BE::CreateApplication();
    
    int main(int argc, char** atgv)
    {
    	auto app = BE::CreateApplication();
    	app->Run();
    	delete app;
    }
    
    
    #endif
    
    
    

    Jetzt werden mir jedoch 8 Errors angezeigt.
    BE keine Klasse oder Namespace in Zeile 9,9,5,5

    zusätzlich soll nen Syntaxfehler in zeile 5 sein, das ein ; vor dem * fehlt.

    Zusätzlich gibt er mir den Code:
    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. Sandbox C:\Users****\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 5 CL

    hier den Github link falls ihr euch das anschauen möchtet ^^

    Währe euch dankbahr für eure Hilfe ^^



  • @Classic Fehlt da nicht ein include?



  • @DirkB Eigentlich nicht ^^ der EntryPoint wird Selbst als Include angegeben. Also wenn ich mich nicht irre 🙂

    auserdem zeigt mir VS2019 keine Error im Code an sondern nur unten in der Fehlerliste.

    Im Code Selbst zeigt er mir keine Roten oder Grünen Markierungen an.

    Deswegen frage ich mich ja was da Kaputt ist ^^



  • Ich Kopiere einfach mal alle Fehler aus der Liste hier rein. vllt erkennst du ja mehr als ich 😃

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2653 "BE": Keine Klasse oder Namespace Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 5 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2143 Syntaxfehler: Es fehlt ";" vor "*" Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 5 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 5 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2653 "BE": Keine Klasse oder Namespace Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 9 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2653 "BE": Keine Klasse oder Namespace Sandbox C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 5 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2143 Syntaxfehler: Es fehlt ";" vor "*" Sandbox C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 5 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. Sandbox C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 5 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2653 "BE": Keine Klasse oder Namespace Sandbox C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 9 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2731 "main": Überladen der Funktion nicht möglich Sandbox C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Sandbox\Source\SandboxApp.cpp 23 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2061 Syntaxfehler: Bezeichner "Sandbox" Sandbox C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Sandbox\Source\SandboxApp.cpp 25 CL

    Edit. die letzten beiden Fehler 9, 10 sind erledigt ^^ hab vergessen nen paar Zeilen zu entfernen als ich versucht habe etwas umzuschreiben in der hoffnung es fixed es



  • @Classic Nimm den ersten Fehler.
    BE kennt der Compiler an der Stelle nicht.
    Also muss der Fehler davor liegen.

    Wo ist das #include "EntryPoint.h" - und was passiert (nicht) davor.



  • @DirkB
    also CoreMinimal.h ist das was den EntryPoint ruft.
    CoreMinimal.h

    ///////////////////////////////////////////////
    //////for use by Engine Applications//////////
    /////////////////////////////////////////////
    
    
    //------Core Entry----------------------
    #include "Core.h"
    //------Core Entry----------------------
    
    //------Entry Point----------------------
    #include "Core/Public/EntryPoint.h"
    //------Entry Point----------------------
    
    
    //------Plugin Entry----------------------
    #include "../../Plugins/Plugins.h"
    //------Plugin Entry----------------------
    

    CoreMinimal.h wird von Engine.h gerufen
    Engine.h

    #pragma once
    #include "CoreMinimal.h"
    
    namespace BE
    {
    
    	class ENGINE_API Engine
    	{
    	public:
    
    
    		Engine();
    		virtual ~Engine();
    
    		void Run();
    	};
    	
    	Engine* CreateApplication();
    	
    }
    

    Engine.h wird von Engine.cpp gerufen
    Engine.cpp

    #include "Engine.h"
    
    namespace BE 
    {
    
    	Engine::Engine()
    	{
    	}
    
    
    	Engine::~Engine()
    	{
    	}
    
    	void Engine::Run()
    	{
    		while (true);
    	}
    
    }
    

    EntryPoint.h ruft ebenfalls Engine.h
    EntryPoint.h

    #pragma once
    #include "../../Engine.h"
    //#include "EntryPoint.h"
    
    #ifdef BE_PLATFORM_WINDOWS
    
    extern BE::Engine* BE::CreateApplication();
    
    int main(int argc, char** argv)
    {
    	
    	sandbox->Run();
    	delete sandbox;
    
    
    }
    
    
    #endif
    

    Der EntryPoint wird dan von SandboxApp.cpp gerufen
    SandboxApp.cpp

    #include "Runtime/Engine.h"
    #include "../../Bo0m_Engine/Source/Runtime/Engine.h"
    
    class Sandbox : public BE::Engine
    {
    public:
    	Sandbox()
    	{
    
    	}
    
    	~Sandbox()
    	{
    
    	}
    
    
    
    };
    
    BE::Engine* CreateApplication()
    {
    	return new Sandbox();
    
    
    };
    

    das dürfte so alles zu deiner Frage was alles davor und nicht davor passiert oder ?



  • @Classic Was davon hast du geschrieben?



  • also teschnich gesehen alles. ich habe im Internet Videos angeschaut wie ich so etwas entwickel und habe angefangen.

    Ich bin kein Anwendungsentwickler sondern Komme uhrsprünglich aus der Spiele Industrie. Deswegen schaue ich sehr viel Youtube und Lese mit Dokumentationen durch um zu Lernen. STRG C, STRG V bin ich nie so der Fan von gewesen ^^

    Sitze hier schon seit ca 3 Tagen. drann. habe schon 3 anläufe gebraucht und immer bin ich am Entry gescheitert.
    Normalerweise hätte ich schon wieder von vorne angefangen aber ich habe Vulcan und OpenGL zum laufen gebracht. das wollte ich nicht kaputt machen ^^

    Ich habe aber eins der Probleme gefunden.

    ich habe im Entrypoint vergessen eine zeile code hinzuzufügen.

    habe es dan direkt umgeschrieben in.

    #ifdef BE_PLATFORM_WINDOWS
    
    extern BE::Engine* BE::CreateApplication();
    
    int main(int argc, char** argv)
    {
    	auto app = BE::CreateApplication(); // die zeile habe ich vergessen
    	app->Run();
    	delete app;
    
    
    }
    
    
    #endif
    

    jetzt sinds nur noch 6 fehlercodes ^^

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2653 "BE": Keine Klasse oder Namespace Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 7 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2143 Syntaxfehler: Es fehlt ";" vor "*" Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 7 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 7 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2065 "sandbox": nichtdeklarierter Bezeichner Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 12 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2065 "sandbox": nichtdeklarierter Bezeichner Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 13 CL

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Tool
    Fehler C2541 "delete": Objekte, die keine Zeiger sind, können nicht gelöscht werden Bo0m_Engine C:\Users\uiss-\Documents\GitHub\Bo0m-Engine\Bo0m_Engine\Bo0m_Engine\Source\Runtime\Core\Public\EntryPoint.h 13 CL



  • Wenn du doch schon Engine.h eingebunden hast, dann brauchst du doch keine zusätzliche Deklaration.

    Außerdem ist diese falsch, da du den Namespace als umliegenden Scope angeben müßtest:

    namespace BE
    {
      class Engine;
    
      /* extern */ Engine* CreateApplication();
    }
    


  • @Th69 Engine.h hatte ich nur eingebunden weil ich dachte ich könnte damit das Problem lösen. ich hab das Problem öfters das ich vergesse was zu verlinken. dachte hier währe es auch der fall.

    deine Idee hat so ziemlich alle fehler behoben.

    hat

    namespace BE
    {
      class Engine;
    
      /* extern */ Engine* CreateApplication();
    }
    

    denn die gleiche Funktion ? also Youtube sagt mir das ich das als externe angeben sollte.



  • extern bei Funktionsdeklarationen ist optional (du hast es ja in Engine.h auch nicht mit angegeben ;- ).



  • @Th69 Hmh okay. Ich verfolge hat nen Youtube Video dort wo gezeigt wird wie sowas aufgebaut wird. ich hab das im endefekt einfach nur umgeschrieben. bei ihm hats funktioniert und bei mir nicht ^^

    naja ich muss da gleich nochmal drüber schauen



  • @Classic sagte in CreateApplication VS2019 Problem. BE::CreateApplication();:

    aus der Liste

    Das ist nutzlos. Kopiere die Meldungen aus dem Ouputtab.



  • @manni66 okay danke ^^ merke ich mir für die zukunft ^^


Anmelden zum Antworten