[[:oktatas:programozás:c|< C]]
====== MingW DLL ======
===== DLL készítése Linux alatt =====
main.exe: main.c
i586-mingw32msvc-gcc -o main.exe main.c kiir.dll
void ir(void);
#include
#include "kiir.h"
void ir()
{
printf("Helló Világ\n");
}
A dll fordítása (Linux alatt):
sudo apt-get install mingw32
i586-mingw32msvc-gcc -c kiir.c
i586-mingw32msvc-gcc -shared -o kiir.dll kiir.o
A DLL használata:
#include
main()
{
ir();
}
===== Még egyszer =====
Az alábbiak Windowson MinGW32 fordítóval működnek.
==== A DLL létrehozása ====
__declspec(dllexport) int __cdecl dupla(int szam)
{
return 2 * szam;
}
sajat.dll: sajat.c
gcc -c -o sajat.o sajat.c
gcc -o sajat.dll -s -shared sajat.o -Wl,--subsystem,windows
==== A DLL felhasználása ====
#include
#include
__declspec(dllimport) int __cdecl dupla(int szam);
int main(int argc, char** argv)
{
printf("%d\n", dupla(6));
return EXIT_SUCCESS;
}
main.exe: main.c
gcc -c -o main.o main.c
gcc -o main.exe -s -L. -lsajat main.o
A -s kapcsoló a szimbólumtábla törlésére ad utasítást.
A -L. kapcsolóval megmondjuk, hogy a -l kapcsoló után megadott
állományt, az aktuális könyvtárban kell keresni.
===== Linkek =====
* http://www.transmissionzero.co.uk/computing/building-dlls-with-mingw/
* http://wyw.dcweb.cn/stdcall.htm
* http://www.cygwin.com/cygwin-ug-net/dll.html
* http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs
* http://www.mingw.org/wiki/sampleDLL