Zwei Projekte miteinander verbinden...
-
Hallo zusammen
Ich arbeite mit dem Visual C++ Compiler und will nun zwei Projekte, die sich im gleichen Arbeitsbereich befinden "zusammenhängen". In meinem Fall habe ich in einem Projekt die Anwndung und im anderen Projekt dann (momentan) vier Klassen.
Ich habe die Projektabhängigkeiten bereits bestimmt. Wenn ich das Ganze aber kompiliere, schaffe ich es erstens nicht, alle Projekte zusammen zu kompilieren und zweitens rafft dann der Linker nicht, was zusammengehört...
Somit habe ich nachher auch keinen Zugriff auf meine Klassen...Hat mir vielleicht jemand einem Tip, was man dagegen unternehmen könnte und was ich da falsch mache?? Muss ich irgendwas noch einstellen, damit das klappt??Danke und Gruss
Dan
-
Ist das eine eine MFC Dll und das andere eine Exe?
Dann kann ich dir eine Erklärung basteln, dauert aber etwas.Du musst die Klassen einer Dll nämlich exportieren, damit sie in der Exe benutzt werden können.
Kurze Checkliste:
Abhängigkeiten okay? (Ja, hast du geschrieben)
Dll liegt im Ordner der Exe bzw. Pfad wurde in Eigenschaften angegeben?
Includes funktionieren?
Die Exe ist aktives Projekt?
-
Ist keine DLL sondern eine "normale" exe.
Das eine Projekt ist eine statische Biliothek und das andere ist dann die Anwendung. Ich will jetzt die Klassen aus der statischen Bibliothek in meiner Anwendung aufrufen können.Zur Checkliste:
-Anhängigkeiten aind OKAY (denke ich - Die Anwendung habe ich von der statischen Bibliothek abhängig gemacht.)
-Die Biblithek liegt im gleichen Ordner wie die Anwendung und die Pfade der .obj Files ist in Eigenschaften angegeben. Vorgehen muss ich ja so: Zuerst die Bibliothek als aktives Projekt festlegen und kompilieren und anschliessend die Anwendung als aktives Projekt festlegen und kompilieren, oder?
-Includes funktionieren nicht. Das heisst: Wenn ich ein Headerfile von der Bibliothek in der Anwendung includen will, kann der Compiler die Datei nicht öffnen, da er sie nicht kennt.
-Die EXE ist schlussendlich aktives Projekt.Ich habe mir ein Beispielprojekt heruntergeladen, wo das ebenfalls so gemacht wird. Dort habe ich dann aber nach dem Kompiliervorgang im Ordner "Externe Abhängigkeiten" die Headerfiles der Klassen aus der Bibliothek...

Danke und Gruss
Danny
-
Wie includest du?
gibst du relative Pfade an? (Bei #include " ")
hast du den Pfad in den Eigenschaften eingetragen? (Bei #include < >)Wenn die Abhängigkeiten richtig sind (was mir scheint), dann musst du nur die Exe kompilieren, dann wird die Bibliothek mitkompiliert, wenn sich etwas geändert hat.
Ansonsten kann ich glaubich nicht viel helfen, da ich das nur mit MFC Dlls kenne und da selbst meine Probleme habe. Ich muss jedes Mal aufs neue austesten, was ich nun wieder vergessen habe, wenn es nicht geht.

-
Unter welchen Eigenschaften meinst Du?
Ja, aber das Austesten kostet Zeit....Ich habe jetzt schon vieles versucht...
Beim Includen gebe ich relative Pfade an, was eigentlich auch beim "Beispielprojekt" so gemacht wird...Und da klappt's auf wundersame Weise...
Ich versuche momentan, die Einstellungen des Beispiels mit denen von meinem zu vergleichen...Vielleicht klappts ja doch igendwann...Ich will einfach nicht alle Klassen in einem Projekt haben...Es wäre wesentlich aufgeräumter, wenn ich mehrere Bibliotheken hätte...

Gruss und Danke trotzdem...
Danny
-
Du kannst ja mal die Baumstruktur zeigen. Mit je Ordner eine Datei und welche welche includen soll. Vielleicht hast du ja nur einen Denkfehler.

In den Projekteinstellungen gibt es "zusätzliche Includepfade".
-
Das kann natürlich auch sein...
Ich habe bereits versucht unter Projekteinstellungen den zusätzlichen Includepfand anzugeben...Klappt aber auch dann nicht...
Was ich ebenfalls gesehen habe ist:
Die Präprozessoranweisungen welche ich im Beispielprojekt sehe, stimmen nicht mit denen in meinem Projekt überein...
Muss vielleicht da noch was einzustellen sein??Danke und Gruss
Danny
-
Die müssen nicht gleich sein - bei mir sind sie auch unterschiedlich.
Um sicher zu gehen, musst du aber nachschauen, was die genau bewirken.

-
Hmm habe sie mir mal angeguckt...
Da ist nicht viel anderes zu finden. Die eine Anweisung beim Beispielprojekt enthält einfach noch die Beszeichnung _UNICODE, was dann meine nicht hat...Dafür hat meine _MBCS... Naja...Ich werde mich nochmals melden, wenn ich den Knopf habe, das lässt mir jetzt keine Ruhe...

Gruz
Danny
-
Hallo...
Eine kleine positive Nachricht habe ich zu vermelden, allerdings auch eine kleine nicht so positive..
...
Ich hab's hingekriegt, was das Linken der Bibliothek angeht... Der Clou ist (Tja, warum ist das mir nicht schon früher inden Sinn gekommen....
)das bei mir dann doch die Pfade nich ganz gestummen haben...Ich exportierte die LIB Datei ins falsche Verzeichnis.... Das habe ich jetzt geklärt...Ich kann nun eine Headerdatei von der Bibliothek in meiner APP includen...
Das Problem ist jetzt aber, dass ich trotzdem die Funktionen der angegebenen Klasse nicht rufen kann...? An was könnte dies liegen...?Danke und Tschau...
