Einbinden von graphics.h in Visual Studio 2015

Forenregel hast sicher gelesen ?

Hier gibt es offiziell keine Hilfe zu Projekten/Schulaufgaben u.s.w.
 
Das ist ja nicht wirklich eine Schulaufgabe. Er hat ein technisches Problem mit einem Programm, das hätte er auch, wenn er es für sich selbst machen würde.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: I'm unknown, Mathnix, Hallo32 und 2 andere
Du müßtest mal dieses ominöse Paket "LCGI" hier hochladen und bereitstellen. Ansonsten kann man rein gar nichts sagen. Oder per PM.
 
Hier ist das Verzeichnis auf das Ich mich beziehe. Danke für den Hinweis.
 
Funktioniert bei mir einwandfrei, zumindest unter VS 2017 Win32/Debug
  • Neues leeres Projekt erzeugt (Win32, Debug)
  • Includepfad zu graphics.h zugefügt (bei mir: "..\include")
  • Bibliothekspfad für qt-mt230nc.lib und lcgi.lib zugefügt (bei mir: "..\lib")
  • zusätzliche abhängigkeiten zu bibliotheken eingefügt: "qt-mt230nc.lib;lcgi.lib;"
  • Aha, reicht nicht, zusätzlich noch "legacy_stdio_definitions.lib;" davorgesetzt, siehe: https://stackoverflow.com/a/34230122/170194
  • kurzes Testprogramm wird kompiliert und gelinkt
  • beigelegte qt-mt230nc.dll wird von der exe geladen (wenn im selben Verzeichnis wie die exe)
  • Programm (zellurärer Automater) wird ausgeführt und zeigt Grafikfenster an
Alles prima!
ant.jpg
 
Bei diesen Punkten bin Ich mir unsicher ob Ich es richtig gemacht habe, habe mal ein paar Screenshots hinzugefügt, vielleicht magst du sagen ob Ich das richtig so eingestellt habe, wenn man das Programmieren erst anfängt erschlägt einen ein so umfangreiches Programm recht schnell ^^

blöderidiot schrieb:
  • Includepfad zu graphics.h zugefügt (bei mir: "..\include")

  • Bibliothekspfad für qt-mt230nc.lib und lcgi.lib zugefügt (bei mir: "..\lib")

  • zusätzliche abhängigkeiten zu bibliotheken eingefügt: "qt-mt230nc.lib;lcgi.lib;"


Wo hast du den Pfad bei dir angegeben? Im "Programmiertext" oder in den Einstellungen wie bei mir?
Und wie Ich diese "legacy_stdio_definitions.lib" genau einfügen soll kann Ich daraus leider nicht lesen, muss
die in den Einstellungen hinzugefügt werden?

Lg Chris
Ergänzung ()

Mir ist aufgefallen das nachdem Ich im Linker die zusätzlichen Abhängigkeiten definiert habe verschwinden die bisherigen Fehlermeldungen aber die neue Meldung LNK1104 taucht auf, weis jemand woran das liegen kann?
 
Zuletzt bearbeitet:
Asianfood_95 schrieb:
Bei diesen Punkten bin Ich mir unsicher ob Ich es richtig gemacht habe, habe mal ein paar Screenshots hinzugefügt
OK, Schritt für Schritt. Zunächst habe ich in einem "Programmierverzeichnis" ein leeres Projekt in VC angelegt, nennen wir das Verzeichnis mal "E:\misc\LCGI\". In diesem Verzeichnis entsteht durch das Anlegen des Projektes "runlcgi1" also das weitere Unterverzeichnis E:\misc\LCGI\runlcgi1". Neben diesem Unterverzeichnis lege ich zwei weitere Verzeichnisse an, in die die include-Dateien ("include") und libs ("lib") kommen. VS erzeugt dann später in Abhängigkeit vom Projekttyp weitere Unterverzeichnisse, z. B. "Debug". Nun sieht die Verzeichnisstruktur mit den enthaltenene Dateien so aus:
Verzeichnis ./runlcgi1
./runlcgi1/main.cxx
./runlcgi1/main.h
./runlcgi1/runlcgi1.sln
./runlcgi1/runlcgi1.vcxproj
Verzeichnis ./include
./include/graphics.h
Verzeichnis ./lib
./lib/lcgi.lib
./lib/qt-mt230nc.lib
Verzeichnis ./runlcgi1/Debug
./runlcgi1/Debug/qt-mt230nc.dll
./runlcgi1/Debug/runlcgi1.exe
Du siehst, im Debug-Verzeichnis liegt später mal die exe, dahin habe ich dann mal die benötigte DLL kopiert.
Nun zu den Einstellungen. Den Includepfad gebe ich relativ zur Position vom Projektpfad an, also "..\include":
include.jpg

Nun gebe ich den Pfad "..\lib" für die Bibliotheken an:
lib.jpg

Welche Bibliotheken verwendet werden sollen, gebe ich bei "Input" an (erste Zeile, die drei ersten libs, mit Semikolon getrennt):
input.jpg

Hier exkludiere ich die redundante lib MSVCRT.
Im Quelltext selbst gebe ich die benötigte include-Datei so an:

#include "graphics.h"

Und dann sollte es eigentlich kompilieren. Probier doch bitte mal.
 
Danke blöderidiot für die sehr ausführliche Antwort, Ich habe mal die Schritte befolgt und ein neues Projekt runLcgi wie unten dargestellt erstellt.
Im Debugverzeichnis liegt die qt-mt230nc.dll
Im Includeverzeichnis die graphics.h
Im Libverzeichnis liegen lcgi.lib und qt-mt230nc.lib
Habe die main-(.h/.cpp) Dateien aus dem LCGI Verzeichnis mal mit reinkopiert
Im Quelltext in der Quelle.cpp hab Ich dann auch #include "graphics.h" geschrieben doch es erscheint der Fehler
"Fehler C1083 Datei (Include) kann nicht geöffnet werden: "graphics.h": No such file or directory"
Habe Ich einen Fehler gemacht? Die Datei sollte er doch eigentlich finden...
 
Zuletzt bearbeitet:
Asianfood_95 schrieb:
Danke blöderidiot für die sehr ausführliche Antwort, Ich habe mal die Schritte befolgt und ein neues Projekt runLcgi wie unten dargestellt erstellt.
Im Debugverzeichnis liegt die qt-mt230nc.dll
Im Includeverzeichnis die graphics.h
Im Libverzeichnis liegen lcgi.lib und qt-mt230nc.lib
Sieht alles ok. aus.

Habe die main-(.h/.cpp) Dateien aus dem LCGI Verzeichnis mal mit reinkopiert
Wozu soll das gut sein? benutzt Du diese in Deinem aktuellen Projekt?

Im Quelltext in der Quelle.cpp hab Ich dann auch #include "graphics.h" geschrieben doch es erscheint der Fehler:
"Fehler C1083 Datei (Include) kann nicht geöffnet werden: "graphics.h": No such file or directory"
Habe Ich einen Fehler gemacht? Die Datei sollte er doch eigentlich finden...
Du hast alles richtig gemacht - bis auf eine Kleinigkeit.
Meine oben vorgeschlagene Verzeichnisstruktur für LCGI-Projekte, bei Dir also "C:\proggen\test" stellt das Basisverzeichnis für alle Projekte dar, die mal LCGI nutzen wollen. Du erstellst dann also in diesem Verzeichnis unterschiedliche Projekte in Visual Studio mit unterschiedlichen Namen, also "runlcgi1", "runcgi2", "runcgischule" usw., so dass die Verzeichnissstruktur später mal so aussieht:
Code:
C:
   | - proggen
             | - test
                    | - include
                    | - lib
                    | - runlcgi1
                    | - runlcgi2
                    | - runlcgischule

so dass Du von jedem Projektverzeichnis aus mit "..\" jeweils "lib" und "include " erreichst. Du hattest einfach nur die beiden Verzeichnisse hinter Dein runlcgi-Projektverzeichnis geschoben anstatt auf die gleiche Ebene.
 
blöderidiot schrieb:
Wozu soll das gut sein? benutzt Du diese in Deinem aktuellen Projekt?
Das hatte keinen kausalen Grund, dachte einfach die würden irgendwie dazugehören aber jetzt ohne das wirklich zu Wissen. Habe die Ordnerstruktur umgeändert wie unten zu sehen,
-.dll liegt in Debug,
-die 2 libs in \lib und die
-graphics.h in der \include
Aber jetzt sind wieder die 2 anderen Fehlermeldungen aufgepoppt...ist das auch kein Problem wenn ich nur eine source Datei habe und keinen Header?
 
Zuletzt bearbeitet:
Asianfood_95 schrieb:
Aber jetzt sind wieder die 2 anderen Fehlermeldungen aufgepoppt...ist das auch kein Problem wenn ich nur eine source Datei habe und keinen Header?
OK, die zweite kann ich nicht lesen, die erste scheint mit dem Projekttyp zu tun zu haben. Hattest Du "leeres Projekt" ausgewählt?
Ansonsten: pack doch bitte mal den ganzen "LCGI\" - Verzeichnisbaum in ein zip, ich würde mir das mal anschauen wenn Du einverstanden bist.
 
Zurück
Oben