2016-09-02 2 views
0

Ich führe derzeit Wartungsarbeiten an veralteten Anwendungen durch, die mit Borland C Builder 6 erstellt wurden. Viele dieser Anwendungen verwenden ein Paket für die Schnittstelle zu Windows-Treibern. Ich kann den Code der .bpk einfach durch geringfügige Änderungen an der Quelle und Verknüpfung in einer .a oder lib von einer dritten Partei aktualisieren, aber es scheint, dass das Paket nur Code oder .bpi Bibliotheken unterstützt. Irgendwelche Ideen, wie man die Bibliotheken in das Paket einbindet?Verknüpfen eines Borland C Builder-Pakets mit einer Bibliothek

+0

IIRC, Sie müssen die Bibliotheken manuell über Befehlszeilenoptionen (in den Optioneneinstellungen) hinzufügen. Aber das letzte Mal, als ich den C++ Builder ** 6 ** benutzt habe, ist schon lange her, also kann ich mich nicht mehr an die Details erinnern. Aber ich sehe, dass Sie '.a' Dateien erwähnen. Hast du vielleicht ** XE6 ** gemeint, was nur ein paar Versionen her ist? C++ Builder ** 6 ** hat keine '.a' Dateien unterstützt. C++ Builder ** XE6 ** tut das. C++ B 6 stammt aus 2002, C++ B XE6 stammt aus dem Jahr 2014. –

+0

Es ist definitiv C++ Builder 6 von 2002 (das Projekt wurde mit C++ Builder 5 gestartet). Es gab keinen zwingenden Grund, Ressourcen zu verwenden, um sie bis jetzt zu aktualisieren. In C++ Builder 6 gibt es keine Option für Befehlszeilenoptionen. Ich konnte es mit einer make-Datei erstellen. – Gerhard

+0

2002 ist eine lange Zeit her. Ich habe CB6 seit Jahren nicht mehr benutzt. Aber IIRC, irgendwo gab es eine Möglichkeit, eine Option hinzuzufügen. Aber wenn Sie es geschafft haben, eine Make-Datei zu verwenden, ist alles in Ordnung. –

Antwort

0

Die Verknüpfung in einer Bibliothek kann erfolgen, indem Sie Projekt/Zu Projekt hinzufügen auswählen und die Bibliothek hinzufügen, anstatt mit dem Projekt verknüpft zu werden.

2

Sie können diese Zeilen in einer CPP-Datei in Ihrem Paketprojekt hinzufügen.

#ifdef __MACH__ 
#pragma comment(lib, "mylib.a") 
#endif 
#ifdef __WIN32__ 
#pragma comment(lib, "mylib.lib") 
#endif 
+0

Dies ist eine Option, aber ich habe es immer abgelehnt, die Verknüpfung in meinem Code zu definieren. Für mich sollte das in eine globale Projektdatei gehen, nicht in irgendeine komische Ecke des Codes. Dies ist, was BCB für Komponenten verwendet, wenn Sie eine Komponente aus einem entfernen, von dem Sie manchmal den verknüpften Spezifikationstext entfernen müssen, der verwaist wurde. – Gerhard

Verwandte Themen