برای ساخت یک DLL بهتره از ++VC استفاده کنی :
اول از منوی File قسمت New رو می زنی بعد قسمت Win32 Dynamic Link Libarary انتخاب می کنی
یه اسم برای پروژت انتخاب می کنی بعد OK رو می زنی و بعد An Empty DLL رو انخاب و Ok می کنی
بعد توی پروژه یه فایل C++ Source File با نام پروژت اضافه می کنی و توی اون کدهای مورد نظرت رو می نویسی
بعدا بازم یک فایل C++ Souce File ولی ایندفعه با پسوند def به پروژه اضافه می کنی و اطلاعات DLL رو توی اون می نویسی :
کد:
LIBRARY ProjectName
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD SINGLE
EXPORTS
/////////////////
Function1
Function2
.
.
.
Function n
/////////////////
به جای ProjectName هم نام پروژت رو می ذاری
و به جای Function می تونی توابعی که می خوای توسط برنامه های دیگه از DLL فراخوانی بشه
رو می ذاری
البته می تونی این اطلاعات رو تغییر بدی
===============================================
حالا دیگه فراخوانی این DLL با بقیه فرق داره و توی هدرها نیست
قبل از فراخوانی باید DLL رو ثبت کنی (با دستور regsvr32)
اول یک هندل تعریف می کنی :
که اینجا dhandle هندل ما می شه
بعد باید dll رو لود کنی
کد:
dhandle=LoadLibrary("DllName.dll");
DllName اسم Dll است و اگه نتونه بالا بیاد null برمی گردنه
بعد باید آدرس هر تابع رو بدست بیاری
کد:
Fvar=(FVAR)GetProcAddress(dhandle,"Fvar");
Fvar همون اسم تابع است که می خوای از توی dll استفادش کنی
dhandle هم همون هندل dll ه
برای استفاده از این توابع هم می تونی با همون Fvar کار کنی :
var یک متغیره که مقدار بازگشتی Fvar رو می گیره و Ps هم همون پارامترهای تابع Fvar هستند