السلام عليكم
كيف يمكن استدعاء ملف cpp من ملف cpp اخر
ان عندي واجهة رئيسية:
menu.cpp ويحتوي
1-add
2-Delete
3-???????
4-....
ووعند الضغط علىadd يستدعي add.cpp(الكود)
فكيف يمكن استدعاء add.cpp!!!
شكراااااااااا!
السلام عليكم
كيف يمكن استدعاء ملف cpp من ملف cpp اخر
ان عندي واجهة رئيسية:
menu.cpp ويحتوي
1-add
2-Delete
3-???????
4-....
ووعند الضغط علىadd يستدعي add.cpp(الكود)
فكيف يمكن استدعاء add.cpp!!!
شكراااااااااا!

MNFayyad
السلام عليكم
بالنسبة لسألك
فالجواب هو :
#include"menu.cpp"
و السلام
شكر
ولكن انا لا اريد تخزينه في include وجربت طريقتك يعطيني errore
ولكن تم تخزينه في مجلد على \:e متلا

MNFayyad
لم أفهم
أرجوالتوضيح أكثير
و هل ممكن أن ترفق لنا مثالك لكي نستطيع المساعدة
شكر
انا عندي اربع ملفات cpp
الملف الاول يوجد فيه كود لاظهار التالي:
باستخدام case
1-add
2-delete
3-sort
بحيث ادا ضغط على 1 متلا يقوم بتنفيد الكود الموجود في case1
وهو كود خاص بadd متلا . ولكن بدلا ان اكتب الكود في case1 اكتبه في ملف اخر اسمه add.cpp (بحيت يكون موجود فيه كودadd)
اقوم بوضعه في case1
switch(x)
{
//--------------------------------------
case 1://add
#include"add.cpp"//يتم استدعاء الملف بدل كتابة اسطر من الكود
break;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
case 2://Inventory Database Module
system("cls");
cout<<"\avgggg"<<endl;
break;

MNFayyad
شكر
انا عندي اربع ملفات cpp
الملف الاول يوجد فيه كود لاظهار التالي:
باستخدام case
1-add
2-delete
3-sort
بحيث ادا ضغط على 1 متلا يقوم بتنفيد الكود الموجود في case1
وهو كود خاص بadd متلا . ولكن بدلا ان اكتب الكود في case1 اكتبه في ملف اخر اسمه add.cpp (بحيت يكون موجود فيه كودadd)
اقوم بوضعه في case1
switch(x)
{
//--------------------------------------
case 1:/اضافة
// يتم استدعاء الملف بدل كتابة الكود الخاص بالاضافة
#include"mainmenu.cpp"
break;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
case 2://Inventory Database Module
system("cls");
cout<<"\avgggg"<<endl;
break;

MNFayyad
ما هو الكومبايلر اللذي تستخدمه؟ إذا كنت تستخدم كومبايلر من سطر الأوامر فعليك ان تحول كل ملف cpp الى ملف .o و من ثم ترجمة ملفات الـ .o مع بعضهم (ما أعرف التفاصيل .. لكن هذا بشكل عام)
أما لو كنت تستخدم بيئة تطوير مثلا visual studio او غيرها, فعليك وضع ملفي الـ cpp في بروجكت واحد.
و هذا يحل جزء من المشكلة فقط ..
الجزء الآخر اللذي لا مفر منه, هو ان يتعرف الملف الأول على الدوال الموجودة في الملف الثاني, و هذه تستطيع عملها بعدة طريق ..
تستطيع كتابة الـ function declaration في الملف اللذي تريد منه استدعاء الدالة.
مثلا عندك ملف x.cpp به الفنكشن
int add( int x, int y )
{
return x + y;
}و عندك ملف آخر, y.cpp تريد استدعاء الدالة منه,
int sum = add( first, second );
هنا عليك ان تكتب الـ declaration او الـ prototype للفنكشن قبل استخدامه ..
//function declaration, to tell the compiler that the function exists somewhere .. int add( int, int); [.....] int sum = add( first, second );
او ان تضع هذا الـ declaration في ملف .h و تعمل include لهذا الـ h
أضيف على رد الأخ الكريم hasan_aljudy
--
مثال بسيط
//Function.cpp
void add()
{
int a,b;
cout << "Enter a number : ";
cin >> a;
cout << "Enter a number : ";
cin >> b;
cout << " a + b = " << a + b << endl;
}
// Main.cpp
#include<iostream>
#include"Function.cpp"
using namespace std;
int main(int argc,char argv[])
{
int x;
cout << " 1 - add " << endl;
cout << " 2 -Clear screen" << endl;
cout << " 3 - Exit" << endl;
switch(x)
{
case 1:
add();
break;
case 2:
system("cls");
break;
case 3 :
cout << "Exit.." << endl;
default:
cout << "Error !!!" << endl;
}
return 0;
}لقد كتبته مباشرة و أخشى أن تكون به أخطاء
و أضن أن هذا ما يلزمك أخي الكريم
و السلام عليكم
تم تعديل هذه المشاركة بواسطة GameDev4Arab في 13 أبريل 2005 في 19:16
عندي إقتراح ، لماذا لا تضع كل الفنكشنس في ملف DLL و إذا احتجت لأي فنكشن قم بإستدعاء الفنكشن من ملف الـ DLL ستكون أسهل و أريح
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…