زمانی که یک لایبرری به صورت shared که در ویندوز به نام dll شناخته میشود، ایجاد میشه function calling convention های ایجاد شده در لایبری متفاوت خواهند بود بنابراین شما نمی توانید یک dll را تبدیل به یک لایبرری استاتیک lib کنید تا لینکر در زمان کامپایل از این کتابخانه استفاده نماید
مضاف بر اینکه فضای آدرس دهی کتابخانه dll متفاوت تر از فضای آدرس دهی یک کتابخانه استاتیک هست، به همین علت هم هست که معمولا استفاده از کتابخانه های dll سربار بیشتری دارند.
و نکته بعدی معمولا کتابخانه های dll یک رفرنس از یک اینترفیس را باز میگردانند به فضای آدرس پروسس شما به همین علت در اولین بار که بارگذاری میشوند، تا زمانی که پروسس شما بسته نشود شما با همین رفرنس اینترفیس می توانید توابع را فراخوانی کنید مگر اینکه تابعی در کتابخانه برای این منظور ایجاد نشده باشد
که در اینصورت می توانید بعد از بارگذاری اولیه کتابخانه ، رفرنس تمام توابعی که لازم دارید یکبار فراخوانی کنید داخل یک لیست ویا یک کانتینر که می تواند اشاره گرهایی با تابع را در خود داشته باشد، توابع کتابخانه را ذخیره کنید و هر جا هم که لازم شد از اون اشاره گرهای توابع استفاده کنید که ایجاد کردید
این کار به سادگی با نوشتن یک wrapper مناسب برای این منظور قابل انجام می باشد