PDA

View Full Version : سوال: كد نويسي C++ در محيط VC++.NET



dr_csharp
یک شنبه 30 فروردین 1388, 18:05 عصر
سلام دوستان.
چطور بايد تو محيط VC++.Net به زبان C++ كد نويسي كنم ؟ظاهرا يه تفاوت هايي داره ، مثلا وقتي يك Win32 Console Application ‌باز ميكنم اولا تابع main‌يه شكل ديگه شده tmain و يكيسري پارامتر داره و يه header اضافه شده كه اسمش و نشنيدم .يا خصوصا اينكه تو كتابي كه ميخونم فايل هاي Header‌بصورت :

#include <iostream>
استفاده شده اما تو اينجا بشكل زيره :

#include "iostream"
تفاوت براي چيه ؟

Nima_NF
یک شنبه 30 فروردین 1388, 19:19 عصر
- اکثر آن ها و تغییر نام کتابخانه ها و ... تغییراتی هست که در استانداردهای جدید C و ++C داده شده است:
http://barnamenevis.org/forum/showthread.php?t=95704

- تابع main در محیط کنسول پارامتر دارد، اما استفاده از آن ها یا معرفی آن ها ضروری نیست. (مثلا وقتی در کنسول بنویسید myapp.exe text کلمه text به شکل آرگومان ارسال می شود)

- وقتی از " " در include استفاده می کنیم که منظور مسیری است که در پروژه اضافه شده است. (در solution explorer) وقتی از < > استفاده می کنیم یعنی آن هدر فایل در فولدر های مشخص شده توسط کامپایل هست (در option در بخش folders تعریف شده اند)
پس برای iostream که جز استاندارد هست باید از همان < > استفاده کنید.

- ضمنا در لینک های زیر فرق بین main و tmain را نیز داده ام (کامپایل یونیکد):
http://barnamenevis.org/forum/showthread.php?t=152913

- آموزش اولیه برنامه نویسی کنسول با ++visual C در این لینک:
http://www.barnamenevis.org/forum/showthread.php?t=127644

dr_csharp
یک شنبه 30 فروردین 1388, 22:47 عصر
ولي من هر دو حالت include‌رو براي iostream‌انجام دادم و error‌نگرفت و ok‌هست !!؟

Nima_NF
یک شنبه 30 فروردین 1388, 23:29 عصر
این بستگی به کتابخانه دارد، معمولا برای کتابخانه های استاندارد و پرکاربرد در هر دو حالت هیچ خطایی نمی دهد، چون در کامپایلر تعریف شده اند.

اما برای سایر کتابخانه ها و هدر فایل ها که شما تعریف می کنید و یا خودتان به پروژه اضافه می کنید معمولا خطا دریافت می کنید که نمی تواند فایل xxx.h را پیدا کند.

در هر حال توجه داشته باشید در ظاهر حتی اگر خطا دریافت نکنید باز کار اشتباهی هست، چون مثلا برای استفاده < > به جای " " ، preprocessor باید بی خود وقت تلف کند و ابتدا فولدر های تعریف شده به کامپایلر را جستجو کند و سپس در آخر به فولدر کنونی مراجعه کند. و این در پروژه های بزرگ با کتابخانه های بزرگ، زمان کامپایل را بسیار بالا می برد.