CreateApplication VS2019 Problem. BE::CreateApplication();



  • @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 ^^


Log in to reply