Hi Leute
ich habe mich ein wenig an DLLs in C++ versucht und stehe gerade vor folgendem Problem. Die
DLL sowie die beiden Testprogramme sind folgendermaßen definiert:
Code:
// Deklaration in
DLL-Header
...
__declspec(dllexport) double Addieren(double p_dA, double p_dB);
...
//
DLL-CPP
...
double Addieren(double p_dA, double p_dB)
{
return p_dA + p_dB;
}
...
----------------------------------
//Programm1 - statische Einbindung
__declspec(dllimport) double Addieren(double , double);
...
dErgebnis = Addieren(dA,
dB);
...
----------------------------------
//Programm2 - dynamische Einbindung
...
typedef double TAdd (double, double);
...
TAdd * Funktion;
HINSTANCE hinstMathe = LoadLibrary(_T("MatheDLL.dll"));
...
Funktion = (TAdd *) GetProcAddress(hinstMathe, "Addieren");
if(Funktion)
{
dErgebnis = (*Funktion) (dA,
dB);
printf("A + B: %.4lf \n", dErgebnis);
}
...
Die statische Version klappt auch einwandfrei, bei der dynamischen dagegen liefert mir
GetProcAddress(hinstMathe, "Addieren") NULL zurück.
GetLastError() liefert "127 - Die angegebene Prozedur wurde nicht gefunden". Die
DLL wurde aber korrekt geladen (jedenfalls ist der hinstMathe belegt).
Habt ihr eventuell eine Idee woran das liegen könnte?
Entwicklungsumgebung: Visual-C++ 2208