اطلاعیه

Collapse
No announcement yet.

کدهای اولیه ویژال استدیو ، که خودش میسازد

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کدهای اولیه ویژال استدیو ، که خودش میسازد

    دوستان وقتی که ویژال استدیو رو با یک پروجکت جدید باز میکنم ، خودش این کدها رو مینویسه ، میخواستم ببینم اینا چی هستند:
    کد:
    int _tmain(int argc, _TCHAR* argv[])
    {
    	return 0;
    }
    _tmain

    و اون دوتا آرگومان چی هستند و به کجا ارسال میشوند؟


    با تشکر.
    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
    (پيش به سوي هدف)

    #2
    پاسخ : کدهای اولیه ویژال استدیو ، که خودش میسازد

    tmain_ همون تابع اصلی شماست، در ویژوال استودیو (یعنی در این تابع) این قابلیت وجود داره که در صورت فعال بودن Unicode در هنگام کامپایل، این تابع به صورت wmain ترجمه میشه در غیر اینصورت(غیرفعال بودن Unicode و استفاده از ASCII) تابع به main تبدیل خواهد شد!

    اون دوتا آرگومان هم مقادیر ورودی به تابع اصلیت هستن دیگه!

    دیدگاه


      #3
      پاسخ : کدهای اولیه ویژال استدیو ، که خودش میسازد

      شما برنامتو میتونی از طریق خط فرمان (همون run ویندوز) باز کنی مثلا برنامه notepad رو میشه اینجوری باز کرد
      notpad.exe c:\mytext.txt که نوت پد فایل متنی mytext.txt رو از درایو c باز میکنه
      در اینجا عبارت c:\mytext.txt به برنامه (همون main) ارسال میشه توسط سیستم عامل
      argc تعداد آرگومانهای خط فرمان رو تو خودش نگه میداره که در مثال بالا 1 هست
      و اشاره گر argv هم آدرس همون آرگومانها رو نگه میداره (در مثال بالا آدرس شروع رشته آدرس فایل)

      دیدگاه


        #4
        پاسخ : کدهای اولیه ویژال استدیو ، که خودش میسازد

        دوستانمون توضیحات لازم رو ارائه دادند و من این روهم اضافه میکنم که ممکنه این سوال براتون پیش بیاد که مقدار argv[] چه زمان از یک بیشتر میشه؟ در پاسخ باید بگم زمانی که میخواهید آرگومان هایی رو در بدو اجرای برنامه براش ارسال کنید. مثلا برنامه به محض اجرا مقادیری رو لازم داره، اون زمان شما پارامتر ها رو برای به این روش ارسال میکنین. این روش در واقع مهم ترین کاربردش در برنامه های وب و پروتکل TCP/IP است. به فرض مثال شما اگر از قبل به ECA لاگ این کرده باشید با ورود مجدد با استفاده از متد SEND آرگومان های نام کاربری و پسورد رو به برنامه انجمن ارسال میکنید
        کم گوی و گزیده گوی

        دیدگاه


          #5
          پاسخ : کدهای اولیه ویژال استدیو ، که خودش میسازد

          الان من میگم که باید داخل تابع مین من باید از این دوتا آرگومان یجایی استفاده کرده باشم تا این دوتا باشن دیگه، ولی اصلا جایی از برنامه ام استفاده شده نیست،
          کد:
          int argc, _TCHAR* argv[]
          حالا مثلا همون خط فرمان از کجا و چطوری میتونه با این دوتا آرگومان ارتباط برقرار کنه؟

          منظورم اینه که چطور میشه برنامه های دیگه با این برنامه ای که حالا من نوشتم و این دوتا آرگومان و داره ارتباط برقرار کنه؟


          امیدوارم که گرفته باشید من چی میگم و گیر من کجاست.

          با تشکر از دوستان/
          به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
          (پيش به سوي هدف)

          دیدگاه


            #6
            پاسخ : کدهای اولیه ویژال استدیو ، که خودش میسازد

            اگه شما اگر به پارامتر های دیگه ای نیاز داشته باشی باید برای مین تعریف کنی و تو خط فرمان براش ارسال کنی. به فرض مثال اگر بخوای از ران استفاده کنی برای ارسال پارامتر ها بایستی از دستور سوئیچ استفاده کنی:
            کد:
            run: example.exe /123
            این کامند مقدار اولیه رو برای برنامه example ارسال میکنه. به طبع با اجرای این دستور مقدار argc میشه 2 و 123 با argv[1]a جایگزین میشه. امیدوارم متوجه شده باشی
            کم گوی و گزیده گوی

            دیدگاه


              #7
              پاسخ : کدهای اولیه ویژال استدیو ، که خودش میسازد

              تا اینجا که فهمیدم اینه که وقتی میخایم یه نرم افزاری رو از run فراخانی کنیم ، یه سری مقادیر به برنامه داده میشه ، و برنامه شروع میشه .
              حالا run چه مقادیری به برنامه میده و این مقادیر در کجای برنامه استفاده میشه رو نمیفهمم، و اصلا این مقادیر چه بدرد میخوره برای برنامه!!

              مثلا من تو کدهام اینا رو کاملا پاک میکنم و جاش مینویسم:
              کد:
              int main()
              الان مثلا این برنامه مشکل داره؟
              با ران فراخانی نمیشه؟

              متاسفانه نمیگیرم اصلا شما چی میگید


              با تشکر از وقتی که می گذارید.
              به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
              (پيش به سوي هدف)

              دیدگاه


                #8
                پاسخ : کدهای اولیه ویژال استدیو ، که خودش میسازد

                سلام
                دوست عزیز اینطوری هم اجرا می شود ولی شما نمی توانید آرگومانی را به تابع main پاس کنید.در کل اگر نیازی به پاس کردن آرگومان به تابع main ندارید می توانید همینطوری که نوشتید انجام بدهید حتی اگر نیازی به مقدار بازگشتی تابع main ندارید می توانید ( void main(void هم بنویسید.

                «اگر واقعيات با نظريات هماهنگي ندارند، واقعيتآ‌ها را تغيير بده.»
                آلبرت انشتين

                دیدگاه

                لطفا صبر کنید...
                X