Problem mit Nutzung von Funktionen aus DLL

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Problem mit Nutzung von Funktionen aus DLL

    Hallo!
    Also wenn ich in meinem Projekt (1) eine Klasseninstanz erstellen will, dann kommt LNK2001 dabei raus. Hier das ganze mal gekürzt als Pseudo-Code, jedoch im Sinn usw. übernommen.

    Projekt 1
    main.cpp

    Source Code

    1. #include <iostream>
    2. #include <Framework_Header.hpp>
    3. using namespace std;
    4. using namespace lwtFramework;
    5. int main()
    6. {
    7. sf::Event Event;
    8. sf::RenderWindow Window;
    9. DWORD Eingabe=0;
    10. _declspec(dllimport) PCEvents Events;
    11. cout << "Tippe G: ";
    12. while(Events.g(Event)==false){
    13. Sleep(500);
    14. cout << "\a";
    15. }
    16. Events.Druck(Event, Window);
    17. cout << endl << "Screenshot gemacht und gespeichert.";
    18. getchar();
    19. return 0;
    20. }
    Display All




    Projekt 2
    Framework_Header.hpp

    Source Code

    1. #ifndef FRAMEWORK_HEADER_HPP
    2. #define FRAMEWORK_HEADER_HPP
    3. #include "Framework.hpp" //Framework
    4. #include <SFML\System.hpp> //SFML-System
    5. #include <SFML\Window.hpp> //SFML-Window
    6. #include <SFML\Graphics.hpp> //SFML-Graphics
    7. #include <Windows.h> //Windows.h
    8. #include <io.h> //io.h
    9. #include <string> //string
    10. #include <fstream> //fstream
    11. #include <iostream> //iostream>
    12. namespace lwtFramework
    13. {
    14. class DLL_FRAMEWORK_API PCEvents
    15. {
    16. public:
    17. PCEvents();
    18. bool a(sf::Event &Event);
    19. void Druck(sf::Event &Event, sf::RenderWindow &App);
    20. private:
    21. sf::Event *Event;
    22. sf::RenderWindow *App;
    23. }
    24. }
    25. #endif
    Display All

    Framework.hpp

    Source Code

    1. #ifndef FRAMEWORK_HPP //Start des
    2. #define FRAMEWORK_HPP //"Waechters".
    3. #if _USRDLL //Importieren und Exportieren der DLL
    4. #define DLL_FRAMEWORK_API _declspec(dllexport) //Schluesselwort
    5. #else
    6. #define DLL_FRAMEWORK_API _declspec(dllimport) //Schluesselwort
    7. #endif
    8. #endif

    Framework_Datei.cpp

    Source Code

    1. bool lwtFramework::PCEvents::a(sf::Event &Event)
    2. {
    3. ....
    4. }
    5. void lwtFramework::PCEvents::Druck(sf::Event &Event, sf::RenderWindow &App)
    6. {
    7. ....
    8. }


    MfG
    Check
  • Ich würd dir mal sehr Empfehlen dir genauer die Syntax von C/++, sowie die Präprozessor, Compiler und Linker Hierarchie anzuschauen. Mir scheint es so, dass du einiges noch nicht so ganz verstanden hast, da du oft die selben Fehler machst.
    Desweiteren gewöhn dir mal schnell an, Sinnvolle (!) Kommentare zu schreiben.

    Hab mal schnell den Code überflogen:
    _declspec(dllimport) PCEvents Events;
    Ich weiß nicht von wo du das her hasst, aber dies ist hier komplett Fehl am Platz.
    Die Import und Export Einstellungen hast du bereits in der Dekleration mittels deinem MACRO getättigt.

    Grundsätzlich brauchst du in einem abhängigen Projekt nur die LIB-Datei zu linken und den dazugehörigen Header einzubinnden, die darin enthaltenen Dekleration ganz wie gewöhnlich ohne weiteren zusatz benutzen.
    Wenn dies nicht klappt ist dein Bibliothek fehlerhaft und dir den Source der Bib nochmal anschauen musst.

    Mfg Rushh0ur