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,5zusä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 CLhier 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLEdit. 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 CLSchweregrad 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 inEngine.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 ^^