id3lib von sourceforge.net in Borland Builder

Hallo,

ich verwende Borland C++ Builder 5.0 und würde gern die id3lib von sourceforge.net in mein Project einbinden. Ich habe die DLL schon mit coff2omf.exe konvertiert, weil es eine Visual DLL ist. Dann habe ich die .lib Datei mit implib.exe erzeugt und zum Project hinzugefügt. auch die Header sind inkludiert, aber ich bekomme nur Linker Errors

[Linker Fehler] Unresolved external ‚ID3_Tag::~ID3_Tag()‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::ID3_Tag(const char *)‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::Link(const char *, unsigned short)‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::HasLyrics() const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::HasV1Tag() const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::HasV2Tag() const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::GetFileSize() const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::GetMp3HeaderInfo() const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Frame::~ID3_Frame()‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Tag::Find(ID3_FrameID) const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Frame::Contains(ID3_FieldID) const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Fehler] Unresolved external ‚ID3_Frame::GetField(ID3_FieldID) const‘ referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ
[Linker Warnung] Public symbol ‚_ID3_v1_genre_description‘ defined in both module D:\CPP\ID3LIB_TEST\UNIT1.OBJ and D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ

Sourcen
#include MP3FileInfo.h

void __fastcall TForm1::BtnReadClick(TObject *Sender)
{
MP3FileInfo mp3fi; // don’t use at this point!

if(!mp3fi.Init(Edit1->Text.c_str()))
{
Application->MessageBox(„Error by reading MP3Info“, „Test“, MB_OK);
return;
}
Memo1->Lines->Add(IntToStr(mp3fi.nLength));
}
//---------------------------------------------------------------------------

und das is noch in der MP3FileInfo.h definiert

// „If you use id3lib.dll (you link dynamic) you should add
// ID3LIB_LINKOPTION=3 to your preprocessor definitions of your project.“
#define ID3LIB_LINKOPTION 3
#include „id3\tag.h“
#pragma comment(lib, „id3lib.lib“)

Wer von euch hat dies schon erfolgreich hinbekommen?
Danke schon mal im Vorraus

MfG Scuba

Hallo,

ich verwende Borland C++ Builder 5.0 und würde gern die id3lib
von sourceforge.net in mein Project einbinden. Ich habe die
DLL schon mit coff2omf.exe konvertiert, weil es eine Visual
DLL ist. Dann habe ich die .lib Datei mit implib.exe erzeugt
und zum Project hinzugefügt. auch die Header sind inkludiert,
aber ich bekomme nur Linker Errors

[Linker Fehler] Unresolved external ‚ID3_Tag::~ID3_Tag()‘
referenced from D:\CPP\ID3LIB_TEST\MP3FILEINFO.OBJ

1 Hinweis ist aber 6.0

Linker-Fehlermeldung: „unresolved external …“

Builder Version: 6.

Dieser Linker-Fehler kann verschiedene Ursachen haben (hier in der Reihenfolge der Wahrscheinlichkeit):

* Eine Unit oder Bibliothek fehlt im Projekt.
* Es gibt ein Problem mit verschiedenen Aufruf-Konventionen, besonders dann, wenn externe Bibliotheken verwendet werden. In Header Dateien von externen Bibliotheken sollte daher immer die Aufruf-Konvention bei Funktionen angegeben werden (in der VCL steht deshalb überall „__fastcall“). Konkret gibt es besonders dann diese Probleme, wenn in einer Funktions-Deklaration keine Aufrufkonvention angegeben ist, die Deklaration aber in zwei Projekten benutzt wird (z.B. Bibliothek und Applikation), die verschiedene standardmäßige Aufruf-Konventionen verwenden. Unter Projekt-Optionen/Compiler Erweitert (Advanced Compiler) lässt sich die Standard-Aufrufkonvention für ein Projekt festlegen.
* Es kommt jedoch vor, dass der Fehler unerklärlicherweise auftritt, obwohl die Unit definitiv im Projekt eingebunden und die Aufrufkonvention richtig ist. Die Länge des Dateipfades scheint eine Rolle zu spielen. In diesem Fall hilft es, das Projektverzeichnis umzubenennen, z.B. ein Zeichen hinzuzufügen. Ein Löschen von Zwischenprodukten (.obj Dateien, il*) bringt hier nichts.

Linker-Fehlermeldung: „unresolved external …“

Builder Version: 6.

Wenn diese Fehlermeldung erscheint, obwohl die angegebene LIB-Datei nicht mehr Teil des Projektes ist, dann ist evtl. der Verweis auf diese Datei nicht korrekt gelöscht worden. Die Lösung: Beenden Sie den Borland C++Builder, und öffnen Sie mit einem einfachen Text-Editor die Projektdatei (Endung auf *.bpr), löschen Sie nun manuell alle Referenzen auf die entsprechende Datei. Starten Sie erst danach den C++ Builder wieder. Die Fehlermeldung sollte dann nicht mehr erscheinen.

Ich such mal weiter ob ich was konkreteres finde

Hallo,

ich verwende Borland C++ Builder 5.0 und würde gern die id3lib
von sourceforge.net in mein Project einbinden. Ich habe die
DLL schon mit coff2omf.exe konvertiert, weil es eine Visual
DLL ist. Dann habe ich die .lib Datei mit implib.exe erzeugt
und zum Project hinzugefügt. auch die Header sind inkludiert,
aber ich bekomme nur Linker Errors

Da hab ich mir mal den source downloaded und echt, ich hab gelesen die erste readme
dann die install
und dann die Win32.Install.txt

und dann war da ein Text wie folgt


So far, it has only been confirmed it compiles on visual C 6.0 (service pack 5),
but if you got it working on Borland or other compilers, drop me a mail, or better, add a patch
here: http://sourceforge.net/tracker/?group_id=979&atid=30… with the (e.g.) borland project files.

wo ich dann
http://sourceforge.net/tracker/?group_id=979&atid=30…
bissel down gescrollt hab und dan auf
http://sourceforge.net/tracker/index.php?func=detail…
klickte .

Den
rest musst du tun jetzt machen
.

und wenn du dich in deinem Code wirklich nicht verschrieben hast, dann
und wenn alle stricke reissen, schreibt man dem autor :smile: ob er weiss wo es steht

Gruss Sascha