Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmieren:wxwidgets:eine_einfache_dll_erstellen

Dies ist eine alte Version des Dokuments!


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.1326289523.txt.gz · Zuletzt geändert: (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki