2015-07-23 31 views
8

Pracuję nad projektem, który obejmuje tworzenie biblioteki dołączanej dynamicznie, więc chcę przetestować go w aplikacji konsoli w Visual Studio.Dodawanie mojej biblioteki DLL do projektu Visual Studio w C++

DLL jest również wykonany w Visual Studio, nie ma wiele, tylko kilka funkcji w nim. Nie jestem pewien, czy jestem po prostu powinien zawierać nagłówek Biblioteki w obejmują panel katalogi w Properties, lub zrobić coś innego

Wiele osób mówi, mam dodać odpowiadającego .lib plik w bibliotece lub katalogu Reference, ale nie jestem pewien, czy VS generuje plik .lib obok biblioteki DLL. Używam VS 2015

+0

Czy dodałeś dll jako odniesienie?W Visual Studio na górze przejdź do Project, następnie Dodaj odniesienie ..., Przeglądaj i znajdź swój plik. Nie jestem pewien, czy to masz na myśli. – MC10

+0

Myślę, że to jest to, że wszyscy mówią mi, że powinienem dodać plik statycznej biblioteki do wklejenia zamiast samej biblioteki DLL, więc poprosiłem, aby się upewnić, że próbowałem raz, ale to nie działało, a ja ". nie jestem pewien, co to jest teraz. – Reaper9806

Odpowiedz

7

nie mam VS przede mną tej chwili, ale powinny one być ogólne kroki, aby ustawić:

Properties->Linker->Input: your.lib 
Properties->Linker->Additional Library Directories: ../your/bin 
Properties->General->Compiler->Additional Include Directories: ../your/include 

do budowania aplikacji, Nagłówki API DLL muszą znajdować się w dołączeniu do kompilacji, są to pliki LIB w koszu dla łącza-czasu. Gdy masz już plik EXE aplikacji, wystarczy, że biblioteka DLL znajdzie się w tym samym folderze, co plik EXE, gdy zostanie uruchomiony.

Możesz również dodać projekt dll i projekt aplikacji do wspólnego rozwiązania w VS i dodać (prawy przycisk myszy) Zależność projektu od aplikacji do biblioteki dll. Zapewnia to prawidłową kolejność budowania, zakładając, że masz zamiar zbudować bibliotekę dll w ogóle.

+1

Podzięka człowiek, to wored! :) – Reaper9806

+0

Proszę oznaczyć moją odpowiedź jako potwierdzoną/zaakceptowaną, jeśli nie masz nic przeciwko :) –

+0

Myślałem, że kliknięcie zadziałało, moje połączenie jest trochę niestabilne. – Reaper9806

2

Możesz także zrobić to, co zrobiłem.

  1. Możesz utworzyć katalog Libs w swoim katalogu Solution.
  2. Następnie można umieścić pliki .dll wewnątrz katalogu Libs lub jakiegoś podkatalogu wewnątrz Libs

    • w moim przypadku, dodałem całą SFML-2.3.2 katalogu tam, który zawiera kod źródłowy , pliki .lib i pliki .dll.
    • Połączyłem to, co mogłem, we właściwościach projektu, ale użyłem makr Visual Studio do wypełnienia nazwy ścieżki do katalogu Solution. Na wszelki wypadek chciałem wprowadzić tę kontrolę wersji i pracować nad nią na wielu maszynach.
  3. Następnie otworzyłem stronę własności projektu.

  4. obrębie strony nieruchomości, poszedłem do Build Events -> Po Budowa Event -> Wiersz poleceń
  5. W Command Line można dodać polecenie kopiowania że skopiuje potrzebne pliki do ten sam katalog co plik wykonywalny, który ich potrzebuje.
    • W moim przypadku użyłem: copy "$(SolutionDir)Libs\SFML-2.3.2\bin\*" "$(TargetDir)"
    • mogę napisać wiele poleceń skopiować tylko poszczególne pliki, które potrzebowałem, ale spędziłem dobre trzy godziny próbując SFML pracować bez faktycznie instalowania go.
+0

Pytanie dotyczyło ogólnego użycia DLL w projekcie Visual Studio, a odpowiedź jest związana z SFML. Proszę, uogólnij odpowiedź. –

+0

Przepraszam za to, że szukałem SFML do pracy nad moim projektem bez faktycznego instalowania go na moim komputerze, więc miałem wtedy kilka otwartych kart. Wygląda na to, że dodałem odpowiedź na niewłaściwe pytanie. –

Powiązane problemy