Seite 1 von 3
Lib linken
Verfasst: Mo Feb 22, 2010 6:00 pm
von Empire
Kein thema hat mich bei C so viele nerfen gekosstet wie die sch*** libs.
ich brach die libwinmm.a und anscheinend findet er sich auch aber trotzdem
funkt es nicht
Hier der Quellecode:
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <libwinmm.a>
int main(int argc, char *argv[])
{
char Kommando[500];
char Dateiname[]={"J:\\Mukke\\Fettes Brot"};
wsprintf(Kommando,"open \"%s\" alias mp3player shareable",Dateiname);
mciSendString(Kommando,0,0,0);
mciSendString("set mp3player time format milliseconds",0,0,0);
mciSendString("play mp3player",0,0,0);
_sleep(5000);
mciSendString("pause mp3player",0,0,0);
_sleep(2000);
mciSendString("resume mp3player",0,0,0);
system("PAUSE");
mciSendString("stop mp3player",0,0,0);
mciSendString("close mp3player",0,0,0);
return 0;
}
und hier die Errors:
Code: Alles auswählen
3:437 C:\Dev-Cpp\include\libwinmm.a [Warning] null character(s) ignored
3 C:\Dev-Cpp\include\libwinmm.a stray '\188' in program
wo bei es den 2. in tausend verschiedenen varianten gibt.
hoffe es kann mir jemand helfen
mfg
Empire
Re: Lib linken
Verfasst: Mo Feb 22, 2010 6:32 pm
von cloidnerux
http://www.network-theory.co.uk/docs/gc ... ro_17.html
Librarys muss man dazulinken, nicht per #include einbinden.
Re: Lib linken
Verfasst: Mo Feb 22, 2010 7:09 pm
von Empire
Re: Lib linken
Verfasst: Mo Feb 22, 2010 7:35 pm
von cloidnerux
Empire hat geschrieben:Bei:
Code: Alles auswählen
#include <C:\Dev-Cpp\lib\libwinmm.a>
ist es das gleiche
Sag mal liest du dir Links nie durch, wenn ich sie schon raussuche?
Eine Library, also eine vorkompilierte, binäre Datei, meistens mit den Endungen (.o, .a, .lib) muss dazu GELINKT werden, das heißt nicht über den Precompiler, nicht über den Compiler sondern über den LINKER, das ist was ganz anderes als "#include", bei VS kannst du natürlich #pragma nutzen, du nutzt aber nicht VS, also fällt das Weg. Du musst unter deinen Projekteinstellungen die Bibilothek hinzufügen, dazu schaue hier:
http://www.uniqueness-template.com/devcpp/(Fast ganz runter Scrollen)
Verzeih mir wenn ich jetzt etwas rabiat bin, aber diese Ignoranz kann ich nicht so ganz Akteptieren
Re: Lib linken
Verfasst: Mo Feb 22, 2010 7:49 pm
von Empire
Ich lese es schon durch nur ist mein English nicht soderlich gut.
Auserdem arbeite ich nicht mit Projekten sondern immer nur mit einzelnen dateien.
War bisher ausreichen
mfg
Empire
Re: Lib linken
Verfasst: Mo Feb 22, 2010 8:31 pm
von cloidnerux
Ich lese es schon durch nur ist mein English nicht soderlich gut.
Das wäre noch nicht sonderlich schlecht, aber deine Art deine Probleme zu schildern macht es mir nicht möglich dir zu helfen:
http://proggen.org/doku.php?id=faq:frag ... s[]=fragen
Re: Lib linken
Verfasst: Mo Feb 22, 2010 8:39 pm
von Kerli
Empire hat geschrieben:Ich lese es schon durch nur ist mein English nicht soderlich gut.
Dann versuch es zu verbessern. Das hilft beim Programmieren enorm, da das meiste nur auf englisch vorhanden ist. Solltest du dabei irgendeinem Wort absolut keine Bedeutung zumessen können ist
dict.leo.org eine gute Hilfe...
Ich kenn mich jetzt nicht mit Dev-C++ und der Projekt/Dateiverwaltung dabei aus und das meiste hat cloidnerux eh schon gesagt, aber irgendwie wird es wohl ein Feld geben wo du zusätzliche Linkeroptionen eintragen kannst. Dort schreibst du dann einfach '-l
<Name der Bibliothek ohne lib und .a>' rein (zb -lwinmm) und es sollte funktionieren.
Gibt es denn eigentlich einen besonderen Grund eine IDE zu verwenden deren Entwicklung vor fünf Jahren eingestellt wurde?
Re: Lib linken
Verfasst: Mo Feb 22, 2010 9:08 pm
von Xin
Empire hat geschrieben:Kein thema hat mich bei C so viele nerfen gekosstet wie die sch*** libs.
ich brach die libwinmm.a und anscheinend findet er sich auch aber trotzdem
funkt es nicht
Hier der Quellecode:
Ähh.. nein
Also: Erstmal wirfst Du Dev-Cpp
bitte weg und lädst Dir CodeBlocks. Dev-Cpp ist Buggy.
Mit Include bindest Du bitte ausschließlich Text-Dateien ein.
libwinmm.a klingt nach einer statischen Lib für Unix. Windows-Libraries enden mit der Extention .lib. Falls Du für Unix kompilierst, kann das passen. Wie auch immer, Du musst Du die .a (bzw. die .lib) Datei dem Linker melden. Schau also unter den Projekteinstellugnen nach Eingaben für den Linker und trage dort die Datei (mit Pfad) ein.
Re: Lib linken
Verfasst: Mo Feb 22, 2010 9:55 pm
von Kerli
Xin hat geschrieben:libwinmm.a klingt nach einer statischen Lib für Unix. Windows-Libraries enden mit der Extention .lib.
Soweit ich mich erinner kann enden die MinGW Libraries auch auf .a ...
Re: Lib linken
Verfasst: Mo Feb 22, 2010 9:59 pm
von cloidnerux
Soweit ich mich erinner kann enden die MinGW Libraries auch auf .a ...
Soweit ich weis tuhen sie das, auch habe ich Windows-libs mit der Endung *.o gesehen. Egt hat nur Visual Studio defaultmäßig seine libs als *.lib gespeichert, gcc hält sich da wohl an Unix-Standard.