Linien und Rechteck zeichnen mit SDL

Gast #1584017
Lesenswert?

Guten Abend,

ich versuche seit ein paar Stunden mit der "SDL_gfx" Library eine Linie 
zu zeichnen. Leider funktioneirt dies nicht.
Als include Datei habe ich die #include "SDL_gfxPrimitives.h" angegeben.
Mit der Funktion "vlineColor" kann man eine Linie zeichnen.
Bei übersetzen erscheint immer diese verdammt Fehlermeldung:

Fehler  1  error LNK2001: Nicht aufgelöstes externes Symbol 
"__imp__vlineColor".  Test.obj  Test

Fehler  2  fatal error LNK1120: 1 nicht aufgelöste externe Verweise. 
C:\Test\Test.exe  1  Test

Als Programmiertool verwende ich Microsoft Visula Studio C++ 2008.
Die DLL "SDL_gfx.dll" habe ich bereits in windows\system und 
windows\system32 reinkopiert.

Kann mir dazu jemand weiterhelfen?
Gast #1584068
Lesenswert?

Die Headerdatei sowie die DLL-Datei sind ja in den entsprechenden 
Verzeichnissen vorhanden. Egal welche Funktion ich davon benutzt, 
erscheint immer dieser Linker Fehler. Woran kann das liegen? Was muss 
ich da tun damit ich diese Funktionen nutzen kann?
Gast #1584087
Lesenswert?

Das DLL/HEader Files sind nicht genug, Du brauchst noch eine LIB-Datei. 
Diese Datei in Projekt zugeben und Path in der Konfiguration auch noch 
unter "additinal libraries" eintragen. Dann sollte es gehen ...
Gast #1584114
Lesenswert?

... und für "fremde" DLLs ohne LIB-File:

Open VS command line from Start->Programs->Microsoft Visual 
Studio->Tools
dumpbin /exports mydll.dll
Copy function names after next line:

ordinal hint RVA      name
        1    0 000110FF my_fnc = @ILT+250(_my_fnc)

Create new text file „mydll.def“ from previous output like:
  EXPORTS      my_add

lib /def:mydll.def /OUT:mydll.lib
Insert „mydll.lib“ into your main project
Gast #1584178
Lesenswert?

Ich finde das ganze echt mega mega mega kompliziert. Ich hab gedacht die 
SDL bietet von Haus aus schon alles bin nicht mehr so begeistert davon.

Oder gibt es noch einen anderen weg, um nur eine Linie bzw. ein Rechteck 
(nicht ausgefüllt) zu zeichnen?
Persönliche Seite #1585043
Lesenswert?

Eine solche Klasse oder "interne Graphiklibrary" existiert nur für 
Nutzer des .Net-Geraffels, nicht aber für C- oder C++-Anwender. Nein, 
"Managed C++" ist nicht C++.

Die Alternative wäre die Verwendung der nicht mit den Express-Editionen 
ausgelieferte MFC, aber die ist nicht ganz zu unrecht übel beleumundet.

Das Problem scheint hier an viel fundamentalerer Stelle zu sitzen; hier 
fehlen grundlegende Kenntnisse, wie mit einem Compiler und insbesondere 
mit Libraries und Headerdateien umzugehen ist.
#1585105
Lesenswert?

Tom schrieb:
> 1. Sucht unter
> Start->Programs->Microsoft Visual Studio->Tools->VS Command Line

Ich schwöre:
Ich benutze VC jetzt schon seit beinah 20 Jahren.
ABer ich habe den Command Prompt im Startmenü bei den VC Tools noch nie 
gesehen :-)
Gerade nachgeshen: tatsächlich, den gibts ja wirklich!

>
> 2. Schreibt dort (SDL_gfx.dll liegt in c:\SDL_gfx.dll)
> dumpdll /exports c:\SDL_gfx.dll


@SDL_Anfänger
Ich gebe zu die Beschreibung ist etwas minimalistisch. Allerdings so 
schwer dann auch wieder nicht zu verstehen.

Start   Das ist der Button links unten im Eck, den du zb dann brauchst
        wenn du ein Programm starten willst oder auch den Rechner
        nieder fahren willst
        (Zitat aus den Anfanfszeiten von Windows - where do you want to
         go today: Start. das ist doch der Button den ich drücken
         muss, wenn ich Windows stoppen will)

Programs->Microsoft Visual Studio->Tools->VS Command Line
die restliche Beschreibung ist der 'Pfad', den du Ausgehend von Start 
Button in den einzelnen aufpappenden Menüs durchgehen musst. Kleb dabei 
nicht allzusehr an den Worten.
"Programs" ist von einem englischen Windows. Dann kann bei dir auf einem 
deutschen Windows "Programme" heißen. "Microsoft Visual Studio" kann bei 
dir auch leicht anders heißen, je nachdem welche Version du hast. Ob das 
Untermenü dann "Tools" heißt oder "Visual Studio Tools" sollte dich auch 
nicht tangieren. Wichtig ist, dass du die entsprechende Funktionalität 
bei dir wiederfindest, auch wenn sie leicht anders heißt.
Und ob das jetzt Command Line oder Command Prompt heißt: Sind nur 2 
unterschiedliche Bezeichnungen für das selbe: Ein Konsolenfenster, in 
dem die Umgebungsvariablen so gesetzt sind, dass man die Visual Studio 
Werkzeuge benutzten kann.

So, jetzt hast du deine Konsole. (schwarzes Fenster mit einem blinkenden 
weißen Eingabecursor.

Jetz musst du wissen, in welchem Pfad du die DLL geparkt hast.
Und in die Konsole gibst du ein

dumpdll /exports c:\Pfad\SDL_gfx.dll

Anstelle von Pfad beutzt du natürlich den Pfad, auf dem du die DLL hast.
Dann sollte sich im Konsolenfenster etwas tun und dumpdll erzeugt dir 
das LIB File.

Wenn du Software Entwickeln willst, dann wirst du nicht umhin kommen, 
auch mal mit ein wenig Phantasie an das Gelesene ranzugehen und 
Beschreinbungen an die auf deinem Rechner vorhandene Situation 
anzupassen.
Schritt-für-Schritt Anweisungen, die man nur stupide runterarbeiten muss 
um ohne Nachdenken oder Ansehen der tatsächlichen Situation zum Ergebnis 
zu kommen, findest du in der IT nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren