PDA

View Full Version : اجرا نشدن آیتم های بعدی در موقع ران کردن در microsoft visual studio لطفا کمک کنید



gole.shabbu8
چهارشنبه 27 اسفند 1393, 20:51 عصر
با سلام خدمت دوستان

یه پروژه درست کردم و از طریق add items یک cpp file اضافه کردم و کدهامو نوشتم بدون مشکل اجرا شد. اما موقعی که یه cpp file دیگه اضافه می کنم، موقع اجرا میگه تابع main قبلا تعریف شده. توی وب سرچ کردم گفتن main رو مثلا تغییر به b_main و انتهای کد بنویس return 0; اما موقع اجرا کردن فایل اولی رو که کد زدم اجرامیکنه!!!!!
باید توی visaul studio چکار کنم که هر فایلی از پروژه رو که من می خوام اجرا کنه؟؟؟؟

مثلا توی شکل زیر فایل شماره 2 رو که اجرا می کنم بجاش فایل شماره یک اجرا میشه. حتی وقتی شماره یک رو هم می بندم باز همون یک به جای 2 اجرا میشه. لطفا راهنمایی کنید. باتشکر:لبخند:
129574

amirtork
پنج شنبه 28 اسفند 1393, 01:50 صبح
سلام،
اضافه کردن فایل های متعدد، به منظور تعریف و پیاده سازی توابع، کلاس ها و ... انجام میشه.
و همونطور هم که خودتون اشاره کردید، در هر پروژه، تنها یک تابع main میتونه وجود داشته باشه، در مورد کامپایل شدن، کامپایلر برای تمام فایل های موجود در پروژه، عملیات های کامپایل، لینک و ... رو انجام میده، و فایل دوم شما هم کامپایل میشه، اما موقعی که شما run میکنید، کامپایلر تابع main رو از پروژه ی شما فراخوانی میکنه و دستوراتی که داخلش نوشته شده رو پیروی میکنه، بنابراین، مثلا اگر میخواید تایع b_main اجرا بشه، باید اون رو داخل تابع main فراخوانی کنید. البته برای انجام اینکار، لازم هست که فایلی که این تابع داخلش تعریف شده رو include کنید، و از اونجایی که توصیه نمیشه فایل های cpp رو include کنید، پیشنهاد میکنم ابتدا امضای تابع رو در فایلی با پسوند .h قرار بدید، سپس پیاده سازی تابع رو در فایلی با همون اسم اما با پسوند .cpp پیاده سازی کنید، و بعد فایل .h رو در برنامه فراخوانی کنید.

مثال:
FILE: main.cpp

#include <iostream>
#include "test.h"
using namespace std;

int main()
{
cout<<"salam"<<endl;
cout<<returnMyFavoritNumber();
return 0;
}

FILE:test.h

#ifndef test_h
#define test_h

int returnMyFavoritNumber();

#endif // test_h

FIEL:test.cpp

#include "test.h"

int returnMyFavoritNumber()
{
return 486;
}

rasul.r
پنج شنبه 28 اسفند 1393, 02:09 صبح
You have 2 main() functions in the same project. You can't do that.
If you want to make a second program, you need to make a separate project. Basically it's 1 project = 1 program.
It looks like you just make a new source file and added it to the same project, which isn't the same thing.
دوسته عزیز شما 2 تا تابع main رو در یک پروژه قرار دادی. شما نمیتونی این کار رو انجام بدی.
اگه میخای برنامه دومی رو اجرا کنی،باید یه پروژه جدا ایجاد کنی.شما یه سورس جدید ایجاد کردی ولی اونو به همون برنامه قبلی اضافه کردی پس میاد و همون برنامه رو مدام اجرا میکنه. امیدوارم کمکتون کرده باشم

rasul.r
پنج شنبه 28 اسفند 1393, 02:11 صبح
http://www.cplusplus.com/forum/beginner/27702/ اینم منبع حرفم دوسته عزیز

gole.shabbu8
پنج شنبه 28 اسفند 1393, 09:31 صبح
ممنونم از دوستانی که پاسخ دادند.
ولی من مشکلم رو یه طور دیگه حل کردم. توی ویدئوهای آموزشی سی پلاس مهندس بازرگان دیدم ایشون هر کدی رو که می نویسه میره توی پوشه پروژه توی درایو و از فایل با پسوند cpp یه کپی برمیداشت و اسم کپی رو به اسم برنامه ای که کد زده بود میذاشت. و هر موقع نیاز به اجرای اون بود فایل cpp که ازش کپی گرفتیم میتونیم با notepad باز کنیم و کد داخلش رو کپی کنیم، کدهای داخل پروژه رو پاک کنیم و کد داخل notepad رو اونجا paste بعد اجرا کنیم!! :تشویق::تشویق::لبخند::لبخند:
129585