Wieso kann in C++ eine durch #include eingebundene Datei nicht geöffnet werden?

... komplette Frage anzeigen

2 Antworten

Teil 1: Header einbinden, um die Klassen und Funktionen aufrufen zu können:

#include "wincodec.h"

Jetzt kann der Code compiliert werden (⇒ .obj oder .o). Allerdings wird danach der Linker meckern, weil er die verwendeten Objekte nirgends findet. Die stehen nämlich in einer oder mehreren Bibliotheken (.lib, .dll, .so).

Teil 2: Bibliothek(en) angeben:

#pragma comment(lib,"wincodec.lib")

Sinnvoller und robuster ist es aber, die Bibliothek in Deinem Projekt (irgendwo bei den Linker-Einstellungen) einzutragen. Es kann nämlich durchaus sein, dass Du verschiedene Bibliotheken für Debug/Release und 32/64bit hast. Die heißen dann z.B. "wincodec-0.10.3-32d.lib" oder schlimmer. Das #pragma wäre damit überfordert. Außerdem musst Du vermutlich noch angeben, in welchem Verzeichnis die Bibliotheken liegen.

Antwort bewerten Vielen Dank für Deine Bewertung

Die verwendete Syntax erscheint sinnlos, das include lässt sich besser in den Properties unterbringen und es fehlen sämtliche Angaben, in welchen Verzeichnissen der Linker die Dateien sucht. Zudem ist eine h-Datei KEINE Bibliothek.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?