dllの作り方
ソースファイルfoo.c
__declspec(dllexport) int __stdcall foo(int x){ return x+1; } __declspec(dllexport) void __stdcall bar(char *s){ s[0]='B'; s[1]='u'; }
defファイルfoo.def
これがなくてもdllは作れるが関数名が_foo@4とかになってしまう
LIBRARY foo.dll EXPORTS foo bar
foo.objを作る
> cl /c foo.c
foo.dllを作る(foo.libとfoo.expも出来る)
> cl /LD foo.obj foo.def
dllを呼び出す
ソースファイルmain.c
#include<stdio.h> int __stdcall foo(int); void __stdcall bar(char*); main(){ char s[]="Fizz"; printf("%d\n",foo(1)); bar(s); printf("%s\n",s); }
実行結果
> cl main.c foo.lib > main 2 Buzz