ورود

View Full Version : ساختن یک Dll استاندارد مشترک در VC++ و قابل استفاده در C#



zoncpp
یک شنبه 06 دی 1394, 13:36 عصر
سلام،
یک سری پروژه در VC++ دارم که کلی کلاسهای مشترک بین این پروژه ها وجود دارد ( همگی تحت فایلهای .cpp و .h ) در پروژه ها اضافه و استفاده شده اند.
حالا میخواهم از این کدنویسیها در پروژه های دیگری مثلا در پروژه C# استفاده کنم. چاره کار این هست که یک Dll استاندارد بنویسم و تمام کدهای مشترک (به زبان C++) را به صورت یک Dll ارائه دهم که در C# هم قابل استفاده باشد.
شما چه پیشنهاد می دهید؟
چگونه یک dll ایجاد کنم و کدنویسی C++ در آن انجام دهم ولی آن Dll در C# قابل استفاده باشد؟
روش ساخت یک Dll استاندارد را نمیدانم! لطفا برایم توضیح دهید.
ممنون

saeid5977
یک شنبه 13 دی 1394, 09:26 صبح
سلام
dll استاندارد و غیر استاندارد نداریم. تقریبا هر dll رو میشه تو زبانهای تحت ویندوز فراخوانی و استفاده کرد. البته دو راه کلی الان بنظرم میرسه یکی dll های معمولی ویندوزی که کتابخونه ای از توابع و کلاسها هستند و یکی com dll ها که چیزی شبیه به همون اکتیویکس میشه(نه لزوما برای رابط کاربری)
برای ساخت dll نوع دوم (که پیشنهاد من هم همونه) میتونید کار رو با ساختن یه پروژه atl dll شروع کنید و کلاسها و توابعتون رو بهش اضافه کنید. البته این نکته رو در نظر داشته باشید چنانچه بخواهید بافر و آرایه و چنین چیزهایی بین dll و برنامه های دات نتی پاس کنید در هر صورت باید یه کارهایی مثل مارشالینگ و ... انجام بدین چون نحوه مدیریت حافظه در برنامهای داتنتی و غیر داتنتی متفاوته. موفق باشید.