# dll schreiben



## hannaS (11. August 2004)

Hallo,

ich verwende heute das erste Mal Visual Studio 6.0 und habe ein funktionierendes c-Konsolenprogramm geschrieben. Jetzt habe ich folgendes Problem: ich möchte eine dll aus diesem c-code machen und da ich nicht vorhabe mich demnächst tiefer mit Visual Studio zu beschäftigen würde ich mich freuen auf diesem Weg eine einfach zu verstehende Anweisung zu erhalten, wie man das macht, denn die Erklärung in der Hilfe ist mir zu hoch. Ich brauche eben nur eine dll, die dann eine andere Person in ihr Programm einbauen kann.
Vielen Dank schonmal!


----------



## Dudadida (11. August 2004)

Erstmal wählst du bei der Projekterstellung aus, dass du eine DLL erstellen möchtest.

Lagere deinen Code in eine Funktion aus. 
Bsp.: void Funktion();

Davor setzt du noch _declspec(dllexport) um festzulegen, dass diese Funktion exportiert werden soll.

Die Main-Funktion wird zu DllMain (mit Parametern, die du mal selbst nachschlagen musst   ).

Dann compilieren und fertig.


----------



## rook (12. August 2004)

wobei es glaube ich 2 möglichkeiten gibt... sachen zu exportieren, was auch einen unterschied macht....

hier mal ein beispiel:


```
#include <windows.h>

#define EXP __declspec (dllexport)

extern "C"
{
	EXP void blah(void);
}

bool APIENTRY DllMain(HANDLE hModule, DWORD call, LPVOID lpReserved)
{
	if(call == DLL_PROCESS_ATTACH)
	{
		MessageBox(NULL, "Dll Loaded...", "", MB_OK | MB_ICONWARNING);  // test ob sie wirklich von einem programm geladen wird... ansonsten sollte die funktion leer bleiben... is aber nicht zwingend notwendig..
	}

	return true;
}

void blah(void)
{
	// blah :D
}
```

die 2 möglichkeiten sind eben:


```
extern "C"
{
	EXP void blah(void);
}
```

und einfach nur


```
EXP void blah(void);
```

wobei du keinen prototyp brauchst... dient nur zur vereinfachung...


----------



## hannaS (12. August 2004)

Danke! Ich versuche es mal.


----------

