programmieren:wxwidgets:eine_einfache_dll_erstellen
Eine DLL erstellen
Für das Matlab-Beispiel zum Ansprechen einer DLL soll hier gezeigt werden, wie die DLL erstellt wird.
Es wird im WxDevC++ IDE ein Projekt neu angelegt und als Ziel eine DLL mit C++ ausgewählt.
Nun wird folgender Code eingegeben:
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#define EXPORT extern "C" __declspec(dllexport)
EXPORT double AddNumbers (double a, double b)
{
return a + b ;
}
EXPORT double SumAndSquare (double *a, double *b)
{
double c, d, e;
c = *a * *a;
d = *b * *b;
e = *a + *b;
*a = c;
*b = d;
return e;
}
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
Die zugehörige Header Datei sieht so aus:
#ifndef _DLL_H_ #define _DLL_H_ #if BUILDING_DLL # define DLLIMPORT __declspec (dllexport) #else /* Not BUILDING_DLL */ # define DLLIMPORT __declspec (dllimport) #endif /* Not BUILDING_DLL */ #include <windows.h> #define EXPORT extern "C" __declspec(dllexport) EXPORT double AddNumbers (double a, double b); EXPORT double SumAndSquare (double *a, double *b); #endif /* _DLL_H_ */
Eine zweite Headerdatei ist nötig mit dem selben Namen wie die DLL und sie enthält die Beschreibung mit dem Inhalt:
extern "C" double AddNumbers (double a, double b) ; extern "C" double SumAndSquare (double *a, double *b);
programmieren/wxwidgets/eine_einfache_dll_erstellen.txt · Zuletzt geändert: von 127.0.0.1
