ممنون . حالا این مثل همون وارد کردن کتابخانه تو c# هستش که از دستور using استفاده میکنیم ؟نقل قول:
Printable View
ممنون . حالا این مثل همون وارد کردن کتابخانه تو 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 خونده می شه.
واقعا ممنون . ولی متاسفانه من تازه کارم این چیزایی که میگیدو درک نمیکنم . اصلا منظورتون از "اعلان توابع یا پیاده سازی شده " رو نمیدونم . برای اینکه زیاد مزاحمتون نباشم کتاب دیتیل رو دارم میخونم و اگه سوالی برام پیش بیاد مزاحمتون میشم .نقل قول:
و
من دارم با vs کار میکنم این فایل هایی که ذکر کردید رو دیدم فایلی به اسم stdafx هم با پسوند .h هست هم cpp میشه بگید دلیلش چیه ؟ اصلا کارش چیه ؟ ممنون
ببنید برای سی پلاس پلاس در ویژوال 3 روش کد نویسی داریم روش اول روش مدریت شده هستش که برای اجرای برنامه ها نیاز به نصب دات نت فریمورک داره البته خود ماکروسافت پیشنهاد میکنه برای استفاده از کتابخانه های دات نت بهتره از یه زبان دیگه مثل سی شارپ یا وی بی دات نت استفاده بشهنقل قول:
روش دوم استفاده از کلاس های ماکروسافت هستش(mfc) که برای اجرای برنامه ها نیاز به کلاس های ماکروسافت داره شاید کنار بعضی برنامه ها دیده باشید که برنامه
microsoft visaul C++ x86 runtime
microsoft visaul C++ x86 redistributable
نصب میشه اینا همون کلاس های ماکروسافت هستن
سومین روش روش استفاده از win32 هستش که از api ویندوز استفاده میکنه و بسیار سطح پایین هستش و به ترتیب از بالا به پایین سطح زبان پایین تر میاد کد نویسی بیشتر میشه و سرعت اجرای برنامه بالا میره امیدوارم خیلی ساده و کلی توضیح داده باشم
اگر با توابع آشنا باشید، اعلان تابع فقط شکل تابع رو نمایش می ده.نقل قول:
مثلا تایع جمع:
[PHP]int add(int a, int b);[/PHP]
اما هیچ کدی ننوشتیم که چه طور باید a و b با هم جمع بشن.
اما پیاده سازی توابع، یعنی این که تابع باید چه عملیاتی رو انجام بده:
[PHP]int add(int a, int b)
}
return a + b;
{[/PHP]
خیلی جاها پیاده سازی و اعلان رو از هم جدا می کنن و پیاده سازی رو به شکل کامپایل شده منتشر می کنن، تا کاربرهایی که از کد کتابخونه استفاده می کنن قابلیت مشاهده کد نوشته شده رو نداشته باشن.
___________
موقع ساخت برنامه هم چند مرحله وجود داره: کامپایلر کد های زبان رایانه رو ایجاد می کنه و لینکر کدهای ایجاد شده رو به هم متصل می کنه.
این مسائل تکنیکی هست و بیشتر موقع ساخت کتابخونه استفاده ش نیازه. در هر صورت دونستنش خالی از لطف نیست.
تا جایی که می دونم تنها vs این سرایند رو به صورت پیشفرض اضافه می کنه.نقل قول:
فایل stdafx خودش فایل های .h دیگه رو #include می کنه. بنابراین به جای این که بالای هر فایلمون همه فایل های .h ای که نیاز داریم رو #include کنیم، یک بار در فایل stdafx فایل ها رو include می کنیم و هر جا لازم بود فایل stdafx رو بالای فایل های دیگه include می کنیم.
فایده ش هم افزایش سرعت کامپایل برنامه هست. امیدوارم خوب توضیح داده باشم.