استفاده کتابخانه در کد خودمان - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

استفاده کتابخانه در کد خودمان

+2 امتیاز

سلام.

چطور میشه از کتابخانه ای که دیگران نوشتن در کد خودمان استفاده کنیم آیا باید این کتابخانه را به کامپایلر معرفی کنیم؟

 

ممنون از پاسختون

سوال شده آذر 1, 1392  بوسیله ی maziyar ebrahimi (امتیاز 87)   6 13 20
ویرایش شده آذر 1, 1392 بوسیله ی maziyar ebrahimi

2 پاسخ

+3 امتیاز
 
بهترین پاسخ

شما از 2 نوع کتابخانه می تونید استفاده کنید:
 

  • کتابخانه استاتیک .lib یا .a : در این حالت بایستی کتابخانه  استاتیک را به linker معرفی کنید .برای معرفی کردنش هم بایستی مسیر کتایخانه و هم نام کتابخانه را به linker معرفی کنید.در ویژوال استدیو به گزینه

 project->properties->Configuration properties->Linker->Genral->Additional Library dependency رفته و مسیر کتابخانه خود را وارد نمایید.سپس به گزینه project->properties->Configuration properties->Linker->Input->Additional dependencies رفته و نام کتابخانه خود به فرض MyEngine.lib را وارد نمایید.در این حالت با داشتن header های مربوط به کتابخانه براحتی می تونید از کتابخانه استفاده کنید.
 

  • کتابخانه دینامیک .dll یا .so:در این حالت شما اگر از dll مربوط یک wrapper lib هم بسازید کاربر می تونه از dll شما همچون مدل استاتیک استفاده کنه بدون نیاز به loadLibrary و اگر هم wrapper lib را نداشته باشید بایستی در ابتدا با تابع loadLibrary کتابخانه مورد نظر را بارگذاری کنید و سپس هر کدام از توابع دلخواه را از طریق api به نام getprocaddress هستش بارگذاری و استفاده نمایید .
typedef int (WINAPI* CREATECONTEXT_)(void);
CREATECONTEXT_ createContext_;

HINSTANCE instance_;
instance_ = LoadLibraryA(fileName);	
createContext_ = (CREATECONTEXT_)GetProcAddress(instance_,"createContext");
createContext();
FreeLibrary(instance_);

 

پاسخ داده شده آذر 4, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
ویرایش شده آذر 5, 1392 بوسیله ی مصطفی ساتکی
+1 امتیاز

شما کتابخونه رو باید به پیونددهنده ( Linker ) بشناسونید .

در Windows راه دیگه اینه که با بکارگیری از تابع () LoadLibrary فایل کتابخانه رو بارگذاری میکنید و با تابع () GetProcAddress نشانی تابعی رو که میخوایید رو بدست می آرید.

پاسخ داده شده آذر 1, 1392 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
...