You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, May 29th 2011, 9:51pm

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

C/C++ Quellcode

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




Projekt 2
Framework_Header.hpp

C/C++ Quellcode

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

Framework.hpp

C/C++ Quellcode

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

Framework_Datei.cpp

C/C++ Quellcode

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


MfG
Check

3

Saturday, June 4th 2011, 11:47am

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

4

Saturday, June 4th 2011, 12:07pm

Genau das habe ich vorher versucht, habe dann im Internet herum gesucht und so fündig geworden. hat auch nicht geklappt und dann hab ich hier gefragt.
Meine Bibliothek scheint fehlerhaft zu sein, ich guck sie mir mal an.
Danke jedenfalls!

MfG
Check

Social bookmarks