PDA

View Full Version : چگونگی استفاده از DLL ها در برنامه ( کمک )



karzari
جمعه 30 دی 1384, 11:17 صبح
چگونه می شود در سی ++ بیلدر از dll ها استفاده کرد ؟ :متفکر:

sasan_vm
جمعه 30 دی 1384, 11:25 صبح
http://www.barnamenevis.org/forum/showthread.php?t=25879

seyedof
جمعه 30 دی 1384, 11:27 صبح
سلام
مانند سایر محیطها. شما باید به وسیله ابزار همراه بیلدر به اسم implib از روی dll تون یک lib بسازید و بعد این lib رو به پروژه خودتون اضافه کرده و هدر فایل اوون رو هم include کنید. البته بدون اینکارا هم میشه ولی دردسرش زیاده. )GetProcAddress وبدست آوردن آدرس توابع به صورت دستی)
ممنون علی

saeedIRHA
شنبه 29 بهمن 1384, 07:15 صبح
سلام!
میخواستم بپرسم اگر یک Lib بسازیم در Service Pack های مختلف فرق نمیکنه !؟؟!؟!
چون اگر از GetProcessAddress استفاده کنیم تو SP هایه مختلف آدرس ها متفاوت هستن!و این کار جوابگو
نیست!
مگر اینکه Kernel32.dll رو اول load کنیم!
میخوام بدونم اگر از Lib استفاده کنیم هم همین مشکل هست یا نه ؟!

Inprise
شنبه 29 بهمن 1384, 07:39 صبح
وقتی از Lib استفاده میکنی آدرس توابع در زمان اجرا و به کمک IAT ترجمه میشن ، و وقتی از DLL استفاده میکنی آدرس توابع در زمان اجرا و توسط توابع کرنل ، چون آدرسی Hardcode نشده ، تغییر ورژن سیستم عامل و سرویسپک و ...مشکلی ایجاد نمیکنه ، ضمن آنکه لازم نیست تو Kernel32 رو شخصا" فراخوانی کنی ، همینکه تو لیست کتابخانه های پیوند خوردهء برنامه ات باشه - که بصورت پیش فرض همینطوره - کافیه . مشکل تو تا اینجا حل میشه ، لیکن اگه محض خنده خواستی بدون پیوند زدن Kernel32 هم آدرس توابعت رو در زمان اجرا بدست بیاری بگو تا بگم .

saeedIRHA
یک شنبه 30 بهمن 1384, 06:59 صبح
سلام
دستت درد نکنه اگر اینم بگی خیلی ممنون میشم