عبد الله الساهر
Oct 2005, 06:23 AM
واحدة بامتداد والأخرى من غير امتداد .....؟ فما هو الفرق ..؟
للذين لايعرفون الفرق إليكم بهذه المعلومة ..
طبعا كلنا نعلم بوجود مكتبة السي++ القياسية أو Standard C++ Library . يوجد من هذه المكتبة نسختين واحدة قديمة والاخرى حديثة . القدية ظهرت مع ظهور السي++ . وكانت تحتوي على القليل من الClasses من أهمهم ال iostream و fstream و .... . ومع زيادة المتطلبات وظهور ال STL (Standard Template Library) . تم اصدار نسخة جديدة من مكتبة السي++ القياسية ..
فمن أجل أن تفرق في مابينهم في الفيجوال سي++ : إذا أردت استخدام القديمة أكتب أسماء الملفات مع ذكر الامتداد والجديدة اكتبهم من غير امتداد ..
طبعا سوف تختلف المكتبة التي سوف يربط معاها برنامجك ، ففي حالة الربط الديناميكي فسوف تستخدم هذه المكتبات :
MSVCRT.DLL : في حالة مكتبة السي القياسية .
MSCVIRT.DLL : في حالة مكتبة السي ++ القياسية القديمة .
MCVCPRT.DLL : في حالة مكتبة السي ++ القياسية الجديدة .
ولكن يحب أن ننتبه إلى موضوع وهو أنه عندما نكتب فإن المترجم يحولها إلى :
#include namespace std {}
وبالتالي فإن جميع التعريفات والتصريحات دخل المكتبة سوف تكون داخل ال std scope وبالتالي يجب أن تكتب التالي من أجل الطباعة مثلا :
std::cout << “Hello World” << std::endl;
أو تقوم بالتصريح عن استخدام ال std scope في أول برنامجك بعد قسم الinclude كالتالي :
using namespace std;
وبعدها يمكن الكتابة عادي :
cout << “Hello World” << endl;
وشكرا
للذين لايعرفون الفرق إليكم بهذه المعلومة ..
طبعا كلنا نعلم بوجود مكتبة السي++ القياسية أو Standard C++ Library . يوجد من هذه المكتبة نسختين واحدة قديمة والاخرى حديثة . القدية ظهرت مع ظهور السي++ . وكانت تحتوي على القليل من الClasses من أهمهم ال iostream و fstream و .... . ومع زيادة المتطلبات وظهور ال STL (Standard Template Library) . تم اصدار نسخة جديدة من مكتبة السي++ القياسية ..
فمن أجل أن تفرق في مابينهم في الفيجوال سي++ : إذا أردت استخدام القديمة أكتب أسماء الملفات مع ذكر الامتداد والجديدة اكتبهم من غير امتداد ..
طبعا سوف تختلف المكتبة التي سوف يربط معاها برنامجك ، ففي حالة الربط الديناميكي فسوف تستخدم هذه المكتبات :
MSVCRT.DLL : في حالة مكتبة السي القياسية .
MSCVIRT.DLL : في حالة مكتبة السي ++ القياسية القديمة .
MCVCPRT.DLL : في حالة مكتبة السي ++ القياسية الجديدة .
ولكن يحب أن ننتبه إلى موضوع وهو أنه عندما نكتب فإن المترجم يحولها إلى :
#include namespace std {}
وبالتالي فإن جميع التعريفات والتصريحات دخل المكتبة سوف تكون داخل ال std scope وبالتالي يجب أن تكتب التالي من أجل الطباعة مثلا :
std::cout << “Hello World” << std::endl;
أو تقوم بالتصريح عن استخدام ال std scope في أول برنامجك بعد قسم الinclude كالتالي :
using namespace std;
وبعدها يمكن الكتابة عادي :
cout << “Hello World” << endl;
وشكرا