View Full Version : مشکل در ساخت Dll از یک Header
littledemon
یک شنبه 22 شهریور 1388, 20:04 عصر
با سلام بر کلهم اجمعین :لبخند:
یه مشکلی برام پیش اومد در ساخت dll در c++
میشه گفت در واقع سواله ...نمیدونستم کجا بپرسم
من یه فایل هدر دارم که توش یه سری متد هست ولی خالیه ...کد داخل متد ها نیست !
از 4-5 تا فایل lib هم استفاده کرده این هدر...حالا من میخوام اینو تبدیل به یه dll کنم ولی نمیدونم چطور و ایا کار ارجاع و استفاده از lib ها رو تو dll باید خودم اعمال کنم یا نه ...
به طور کلی چیز خاصی از ساخت dll در c++ نمیدونم...
ممنون میشم یه ادرسی بدید یا راهنمایی کنید.:لبخندساده:
بدرود
pswin.pooya
دوشنبه 23 شهریور 1388, 15:08 عصر
خوب این کار خیلی راحت هستش.
یه پروژه dll ایجاد میکنی و فایل هدرت رو میسازی و کدهای توابع هدر رو داخل فایل cpp قرار میدی. فقط باید به یک نکته دقت کنی که قبل از اسم توابع و کلاسها باید از کلمه کلیدی زیر استفاده کنی:
برای MSVC:
__declspec( dllexport )
برای gcc:
__attribute__ ((visibility("default")))
البته اگر بخوای راحتر باشی و مشکل کراس پلتفری نداشته باشی میتونی اون رو به صورت یک define تعریف کنی. مثلا:
#define MY_API __declspec( dllexport )
و دست آخر هم به صورت زیر هدرها رو مینویسی:
class MY_API myclass
{
....
};
خوب حالا اگر کدت رو کامپایل کنی. به اسم پروژت یک dll و یک فایل lib تولید میشه. اونها رو توس مسیر پروژه ای که میخوای ازش استفاده کنی کپیش کن. برای استفاده از dll کافیه هدر فایل اون و کتابخانه lib اون رو توی پروژت اضافه کنی.
در مورد استفاده از فایلهای lib یا باید از setting پروژه استفاده کنی و یا اینکه اونها رو به صورت مستقیم داخل کد واردشون کنی:
برای MSVC:
#pragma comment(lib,"mydll.lib")
کد بالا رو توی فایلهای cpp قرار بده. این فایل Lib بعد از کامپایل برنامت لازم نیستش و لازم نیست که اون همراه فایل exe باشه و تنها فایل dll کافیه.
khatarat
چهارشنبه 25 شهریور 1388, 13:14 عصر
حالا اگر هدر فایلمون precompiled header باشه چی؟
یعنی ما فقط تعریف توابع رو می بینیم و کدهای توابع در دسترس نیستند این کارایی که گفتید ارر می دن
pswin.pooya
چهارشنبه 25 شهریور 1388, 15:11 عصر
در ابتدا یک پروژه خالی ایجاد کنید و ...
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.