Gif Einbundung Linker Fehler
-
Hallo zusammen,
habe mir mal das Paket TGIFImage v.2.2 von Torry's Delphi Pages geholt und die gifimage.pas als Komponente hinzugefügt. Die daraus entstandene gifimage.hpp habe ich dann ins \root\CBuilder\Include\VCL geschoben.
Dann wollte ich den Code ausführen:
TGIFImage *_GIFPicture = new TGIFImage(); _GIFPicture->LoadFromFile(strFilename);
Und bekamm diese Linker Fehler:
[Linker Fehler] Unresolved external '__fastcall Gifimage::TGIFImage::~TGIFImage()' referenced from C:\CPP\TEST\UNIT1.OBJ
[Linker Fehler] Unresolved external 'Gifimage::TGIFImage::' referenced from C:\CPP\TEST\UNIT1.OBJ
[Linker Fehler] Unresolved external '__fastcall Gifimage::TGIFImage::TGIFImage()' referenced from C:\CPP\TEST\UNIT1.OBJHat jemand eine Ahnung woran es liegen könnte?
-
Heinzelmännchen schrieb:
Die daraus entstandene gifimage.hpp habe ich dann ins \root\CBuilder\Include\VCL geschoben.
Hi,
logisch wenn du die *.hpp (entspricht etwa einer *.h) verschiebst findet er den Source nicht mehr! Als Komponente intallieren und den Pfad wo die Komponente lieg den Pfaden hinzufügen (Umgebeungs- oder Projektoptionen)MFG
Alexander Sulfrian
-
Alexander Sulfrian schrieb:
Hi,
logisch wenn du die *.hpp (entspricht etwa einer *.h) verschiebst findet er den Source nicht mehr! Als Komponente intallieren und den Pfad wo die Komponente lieg den Pfaden hinzufügen (Umgebeungs- oder Projektoptionen)MFG
Alexander Sulfrian
Moin,
das kann nicht das Problem sein. Habe sie ja eigentlich nicht verschoben, sondern nur noch in das Verzeichnis kopiert. Das File existiert also mehrmals. Habe es in das Verzeichnis geschoben, weil der Compiler vorher ausgegeben hatte das die Datei nicht gefunden werden konnte.
-
Heinzelmännchen,
versuchs mal mit einem
#pragma link "gifimage" //..oder wie auch immer die Datei heißt
-
Heinzelmännchen schrieb:
Habe es in das Verzeichnis geschoben, weil der Compiler vorher ausgegeben hatte das die Datei nicht gefunden werden konnte.
HI,
genau deshalb solltest du nach der Komponentenintstalation die Pfade aktualisieren! Jetzt findet er zwar die kopierte *.hpp File aber nicht die *.pas (oder wie auch immer)! Woher soll er auch wissen, wo diese Datei ist?MFG
Alexander Sulfrian
-
Hier mal eine Regel, wie man beim Installieren von Komponenten vorgehen sollte, die als Units vorliegen:
- Klicke im BCB auf "Datei->Alle schließen"
- Klicke auf "Komponente->Komponente installieren"
- Klicke auf die Registerkarte "In neues Package"
- Gib den Namen der Unit an (cpp-/ oder pas-Datei)
- Klicke auf "Durchsuchen..."
- Wähle einen Namen für das Package und gib diesen im OpenDialog ein
- Klicke im OpenDialog auf "Öffnen"
- Klicke auf "OK"
- Klicke auf "Ja" -> Package wird installiert
- Klicke auf "OK"
- Klicke auf "Projekt->... erstellen"
- Klicke "Ja" -> Package wird kompiliert
- Klicke "OK"
- Klicke auf "Datei->Alle schließen"
- Klicke "Ja"
- Klicke "Speichern"
Damit du die KOmpo auch in deinen Projekten benutzen kannst, musst du einige Dateien in bestimmte Verzeichnisse kopieren:
- h/hpp-Datei: Kopieren nach /$(BCB)/Include
- LIB-Datei : Kopieren nach /$(BCB)/Lib
- BPI-Datei : Kopieren nach /$(BCB)/Lib
- BPL-Datei : Kopieren nach /$(BCB)/Bin
In deinen Projekten musst du die h(pp)-Datei im Projekt inkludieren, und in "Projekt->Optionen->Packages" sollte der entsprechende Eintrag angeklickt sein.
@Mods: Ist vielleicht was für die FAQ. Ich hab solche Fragen schon häufiger beantwortet.