Wie vielleicht schon in meiner Überschrift zu erkennen ist, versuche ich eine Template-Funktion in eine DLL zu packen, um sie später wieder auslesen zu können. Ich benutze "Microsoft Visual Studio 2005Pro" und habe es zwar schon geschafft, die DLL-Datei erfolgreich zu erstellen, aber wenn ich dann aus einem anderen Projekt versuche, die darin enthaltenen Funktionen aufzurufen, meckert er beim Linken. (Die DLLs sind statisch eingebunden) Er meint dann, dass es bei beiden Funktionen unaufgelöste externe Symbole gibt. Mir erscheint es so, als würde er die Definitionen der Funktionen nicht finden. Ich bin mir aber sicher, dass ich die DLL.lib-Datei eingebunden habe.
Hier ist mein Code:
Standart.h - Projekt zur Erstellung der DLL
Standart.CPP - Projekt zur Erstellung der DLL
main.cpp - Projekt zur Einbindung der DLL (die DLL.h ist im Projekt vorhanden)
Ich hoffe mir kann da jemand helfen.
Hier ist mein Code:
Standart.h - Projekt zur Erstellung der DLL
Code:
#ifdef STDBUECHEREI_EXPORTS
#define Engine_DLL __declspec(dllexport)
#else
#define Engine_DLL __declspec(dllimport)
#endif
long s1 = 1;
long s2 = 1;
template< class Typ >
Typ Engine_DLL get_Zufallszahl(const Typ, const Typ);
void Engine_DLL init_Zufallszahl(const long, const long);
Standart.CPP - Projekt zur Erstellung der DLL
Code:
#include "Standart.h"
template< class Typ >
Typ Engine_DLL get_Zufallszahl(const Typ Min, const Typ Max) {
...
}
void Engine_DLL init_Zufallszahl(const long init_s1, const long init_s2) {
s1 = init_s1;
s2 = init_s2;
}
main.cpp - Projekt zur Einbindung der DLL (die DLL.h ist im Projekt vorhanden)
Code:
#include <iostream>
#include <conio.h>
#include "Standart.h"
int main(void) {
init_Zufallszahl(223941, 129344);
std::cout << "Zahl: " << get_Zufallszahl<int>(-4, 10);
_getch();
return 0;
}
Ich hoffe mir kann da jemand helfen.