ممنون . حالا این مثل همون وارد کردن کتابخانه تو c# هستش که از دستور using استفاده میکنیم ؟
ممنون . حالا این مثل همون وارد کردن کتابخانه تو c# هستش که از دستور using استفاده میکنیم ؟
بله درسته.......
نه دقیقا. using رو داخل c++ هم داریم. توی c# برای وارد کردن کتابخونه ها معمولا از طریق منوی Add Reference کتابخونه رو وارد می کنیم، اما تو c++ معمولا فایل هدر رو هم include می کنیم. می شه گفت که معادل نداره تو c# و فقط تو c++ داریم چنین چیزی رو.
فکر کنم فرقشون این باشه که توی یوزینگ درواقع ما داریم از dll ها استفاده میکنیم ولی در include ما داریم فایل رو همراه فایل اجرایی لینک میکنیم(در واقع نگرانی از بابت رجیستر شدن دی ال ال ها یا نصب دات نت فریمورک و چیزهای دیگه رو نداره)
ممنون بابت جوابتون . هنوز تو این زمینه یه سری مطالب برام مبهمه فک کنم باید بیشتر بخونم تا include اینارو درک کنم .
یعنی برای استفاده از c++ میشه .نت فرم ورک رو نصب نکرد . درسته ؟
اون قدرا سخت نیست. تو c++ هر کتابخونه دو فایل داره: فایل .h که به زبان c++ نوشته شده شامل اعلان توابع هست و هیچ پیاده سازیی نداره
و یک فایل .cpp (اگه کتابخونه متن باز باشه)، یا یک فایل .dll یا یک فایل .lib یا .a که شامل پیاده سازی توابع هست.
موقع ساخت برنامه:
اول که برنامه کامپایل می شه کامپایلر اعلان توابع رو از فایل .h نگاه می کنه.
و دوم موقع لینک کردن و ساختن فایل exe پیاده سازی توابع از فایل .lib یا .a داخل فایل exe قرار می گیره، یا هنگام اجرا از فایل .dll خونده می شه.
Last edited by L͠øneWolf; 21-06-2014 at 22:44.
واقعا ممنون . ولی متاسفانه من تازه کارم این چیزایی که میگیدو درک نمیکنم . اصلا منظورتون از "اعلان توابع یا پیاده سازی شده " رو نمیدونم . برای اینکه زیاد مزاحمتون نباشم کتاب دیتیل رو دارم میخونم و اگه سوالی برام پیش بیاد مزاحمتون میشم .
و
من دارم با vs کار میکنم این فایل هایی که ذکر کردید رو دیدم فایلی به اسم stdafx هم با پسوند .h هست هم cpp میشه بگید دلیلش چیه ؟ اصلا کارش چیه ؟ ممنون
ببنید برای سی پلاس پلاس در ویژوال 3 روش کد نویسی داریم روش اول روش مدریت شده هستش که برای اجرای برنامه ها نیاز به نصب دات نت فریمورک داره البته خود ماکروسافت پیشنهاد میکنه برای استفاده از کتابخانه های دات نت بهتره از یه زبان دیگه مثل سی شارپ یا وی بی دات نت استفاده بشه
روش دوم استفاده از کلاس های ماکروسافت هستش(mfc) که برای اجرای برنامه ها نیاز به کلاس های ماکروسافت داره شاید کنار بعضی برنامه ها دیده باشید که برنامه
microsoft visaul C++ x86 runtime
microsoft visaul C++ x86 redistributable
نصب میشه اینا همون کلاس های ماکروسافت هستن
سومین روش روش استفاده از win32 هستش که از api ویندوز استفاده میکنه و بسیار سطح پایین هستش و به ترتیب از بالا به پایین سطح زبان پایین تر میاد کد نویسی بیشتر میشه و سرعت اجرای برنامه بالا میره امیدوارم خیلی ساده و کلی توضیح داده باشم
اگر با توابع آشنا باشید، اعلان تابع فقط شکل تابع رو نمایش می ده.
مثلا تایع جمع:
اما هیچ کدی ننوشتیم که چه طور باید a و b با هم جمع بشن.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما پیاده سازی توابع، یعنی این که تابع باید چه عملیاتی رو انجام بده:
خیلی جاها پیاده سازی و اعلان رو از هم جدا می کنن و پیاده سازی رو به شکل کامپایل شده منتشر می کنن، تا کاربرهایی که از کد کتابخونه استفاده می کنن قابلیت مشاهده کد نوشته شده رو نداشته باشن.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
___________
موقع ساخت برنامه هم چند مرحله وجود داره: کامپایلر کد های زبان رایانه رو ایجاد می کنه و لینکر کدهای ایجاد شده رو به هم متصل می کنه.
این مسائل تکنیکی هست و بیشتر موقع ساخت کتابخونه استفاده ش نیازه. در هر صورت دونستنش خالی از لطف نیست.
تا جایی که می دونم تنها vs این سرایند رو به صورت پیشفرض اضافه می کنه.
فایل stdafx خودش فایل های .h دیگه رو #include می کنه. بنابراین به جای این که بالای هر فایلمون همه فایل های .h ای که نیاز داریم رو #include کنیم، یک بار در فایل stdafx فایل ها رو include می کنیم و هر جا لازم بود فایل stdafx رو بالای فایل های دیگه include می کنیم.
فایده ش هم افزایش سرعت کامپایل برنامه هست. امیدوارم خوب توضیح داده باشم.
Last edited by L͠øneWolf; 21-06-2014 at 23:28.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)