覚え書き。ここを参考に。
bcc32で作成したDLLをbccやDelphiで使う。
bccをインストールしたらilink32.cfgとbcc32.cfgは作成しておく。
dllmain.c(dllmain.dll)
#include <stdio.h> __declspec(dllexport) void PrintHello(void) { printf("Hello!\n"); } __declspec(dllexport) void PrintVar(int a, int b) { printf("a=%d b=%d\n", a, b); }
dllgo.c(dllgo.exe)
__declspec(dllimport) PrintHello(void); __declspec(dllexport) void PrintVar(int a, int b); int main(void) { PrintHello(); PrintVar(1, 2); return 0; }
dllgopas.dpr(dllgopas.exe)
program dllgopas; {$APPTYPE CONSOLE} procedure _PrintHello; external 'dllmain.dll'; procedure _PrintVar(a, b: Integer); stdcall; external 'dllmain.dll'; begin _PrintHello; _PrintVar(1, 2); end.
コンパイル方法とか。
>bcc32 -c dllmain.c >bcc32 -tWD -WM -edllmain.dll dllmain.obj >implib dllmain.lib dllmain.dll >bcc32 dllgo.c dllmain.lib >dcc32 dllgopas.dpr >dir 2007/11/05 00:27 <DIR> . 2007/11/05 00:27 <DIR> .. 2007/11/05 00:15 170 dllgo.c 2007/11/05 00:15 47,104 dllgo.exe 2007/11/05 00:15 264 dllgo.obj 2007/11/05 00:15 393,216 dllgo.tds 2007/11/05 00:24 208 dllgopas.dpr 2007/11/05 00:15 13,824 dllgopas.exe 2007/11/05 00:13 189 dllmain.c 2007/11/05 00:14 54,272 dllmain.dll 2007/11/05 00:14 1,024 dllmain.lib 2007/11/05 00:13 577 dllmain.obj 2007/11/05 00:14 393,216 dllmain.tds