# .obj file einbinden



## Tom_Green (29. November 2008)

Hallo zusammen

Ich habe eine kleine Frage. Wie und wo kann ich eine .obj file im Visual Studio einbinden? Muss ich dass mit include machen oder wie geht das?

mfg


----------



## engelmarkus (29. November 2008)

Was hast du genau vor? Wo hast du diese obj-Datei denn her?
Mit "#include" bindest du Header-Dateien ein (normalerweise ".h").
Ansonsten brauchst du noch lib-Dateien, aber eine obj-Datei wirst du so nicht verwenden können. Du kannst sie höchstens mit den obj-Dateien, die aus deinem Quellcode erzeugt wurden, zusammen zu einer Exe- oder DLL-Datei linken lassen.


----------



## Tom_Green (30. November 2008)

Mir hat ein kollege einen code geschrieben, der funktionen rechnen soll. und jetzt hat er mit die header datei und eine .obj datei geschick und gesagt ich müsse diese nur einbinden und dann funktioniere das. wie und wo müsste ich dann diese .obj datei mit denn anderen linken?

mfg


----------



## The_Rave (30. November 2008)

Du kannst im Project unter C++ precomilierte Header Dateien angeben. Ansonsten noch die Headerdatei mit Rechtsklick auf Projekt  und Hinzufügen und dann gehts weiter.


----------



## engelmarkus (1. Dezember 2008)

Darauf bin ich gar nicht gekommen :-( .


----------



## Tom_Green (1. Dezember 2008)

das funktioniert irgendwie nicht. hmm hab hier mal die fehlermeldung

```
1>------ Erstellen gestartet: Projekt: Project_Graph_Informatic, Konfiguration: Debug Win32 ------
1>Verknüpfen...
1>Project_Graph_InformaticDoc1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""float __cdecl Funktion(char const * const,float)" (?Funktion@@YAMQBDM@Z)" in Funktion ""public: long __thiscall CProject_Graph_InformaticDoc::SetGraphDatawithFunction(void)" (?SetGraphDatawithFunction@CProject_Graph_InformaticDoc@@QAEJXZ)".
1>mfcs80d.lib(stdafx.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""int __cdecl _AfxInitManaged(void)" (?_AfxInitManaged@@YAHXZ)".
1>C:\Dokumente und Einstellungen\Peter\Eigene Dateien\Visual Studio 2005\Projects\Project_Graph_Informatic\Debug\Project_Graph_Informatic.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Peter\Eigene Dateien\Visual Studio 2005\Projects\Project_Graph_Informatic\src\Debug\BuildLog.htm" gespeichert.
1>Project_Graph_Informatic - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
```

Mein File heisst, aber formcalc.obj ist das ok? Diese muss ich  bei vorkompilierten header einbinden. und formcalc.h muss ich dem projekt hinzufühgen?

und so sieht mein vorkompiliertes header zeugs aus.


----------



## The_Rave (1. Dezember 2008)

Hast du auch die Funktionsprototypen angegeben? Der Linker findet deine Funktionen nicht der weiß nicht von alleine, daß die da sind. Dem Funktionsprototyp wird ein "extern" vorangestellt. Handelt es sich um C Funktionen muss es "extern "C"" sein. so wie es aussieht, ist die Headerdatei nicht richtig eingefügt ins Project, da stehen bestimmt auch die Funktionsprototypen drin. Die Headerdatei musst du dem Project selber hinzufügen, vorne im Ordnerbaum kann man das ganz einfach machen mir Rechtsklick aufs Projektnamen, nicht in den Projektproperties nehm das formcalc.h  da mal wieder raus. Vorne im Ordnerbaum müsste es auch einen Ordner Header geben, da sollte die Headerdatei später auftauchen wenn du die hinzufügst.


----------



## deepthroat (1. Dezember 2008)

Hi.

Die .obj Datei als vorkompilierten Header einzustellen ist unsinnig. Nimm das mal wieder raus.

Die Funktion ist offensichtlich deklariert, denn der Compiler beschwert sich nicht. (Das heißt du kannst den letzten Beitrag von The_Rave einfach vergessen).

Um die .obj Datei hinzuzulinken müßtest du die Datei beim Linker mit angeben. Trag die .obj Datei mal in den Projekteigenschaften unter Linker->Eingabe: Zusätzliche Abhängigkeiten ein.

Gruß


----------

