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?
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?
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 ...
Ja ich habs jetzt auch entdeckt.
Mir fehlr die Zeile:
>>#pragma comment(lib, "SDL_gfx.lib")
Diese Datei gibt es bei mir aber nicht. Woher kann ich diese LIB-Datei
beziehen?
Wenn man die Library compiliert, kriegt man nicht nur die DLL, aber auch die LIB-Datei.
Wie gesagt die DLL und die HEADERDATEI hab ich ja. Mir fehlt nur noch die LIB-Datei.
... 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
Also sorry Tom aber mit dem kann ich nun wirklich nichts anfangen.
1. Sucht unter Start->Programs->Microsoft Visual Studio->Tools->VS Command Line 2. Schreibt dort (SDL_gfx.dll liegt in c:\SDL_gfx.dll) dumpdll /exports c:\SDL_gfx.dll
Hallo Tom, ich kann mit deinen Ausführen überhaupt nichts anfangen. Sorry vielen Dank für deine Hilfe.
>ich kann mit deinen Ausführen überhaupt nichts anfangen.
Kennst du das DOS-Fenster?
Natürlich kenne ich das DOS Fenster. Ich bin jetzt mal in das Verzeichnis wo die DLL liegt reingegangen. dumpdll gibt es bei mir nicht.
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?
Am besten fängst du nochmal an und zwar bei der Installation. Hierfür ein paar Links: http://de.wikibooks.org/wiki/SDL http://de.wikibooks.org/wiki/SDL:_Installation
Hi, wenn du keine Superduper Grafiklibrary brauchst, wieso benutzt du dann nicht die Visual Studio interne ? Schau dir mal die Klasse Grahics an, da gibt es Drawline und so weiter schon. Gruß
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.