السلام عليكم ...أريد أن أبدأ في تعلم لغة سي ،و انا أستخدم فيجوال ستوديو لذا أخترت مشروع c++win32 console application ثم أضفت ملف c++file جديد و قمت بتغيير إمتداده إلى c و لاحظت أنه لا توجد نقطة البدء main و عند عمل run يحدث خطأ Error error LNK2019: unresolved external symbol _wmain referenced in function ___tmainCRTStartupMSVCRTD.lib(wcrtexe.obj); c_lang"أرجو إرشادي إلى كيفية بدء مشروع c جديد
كيف أبدأ c
طريقتك صحيحة في الانشاء :ثم اكتب الكود وهذا مثال :
#include<stdio.h>
main(){
printf("aaaaaaaaaa");
getchar();
}لم يحدث أي تغيير يا أخ فهد، بالإضافة إلى انه عند عمل debug تظهر رسالة تقول أن المشروع out of date .رسالة الخطا الأولى موجودة في الملف التنفيذي
الرسالة في المشاركة الاولي تدل على انك انشاءة مشروع ولكن لم تبنى الدالة الرئسية.
اعمل مشروع من جديد ونفذ الخطوات السابقة.
الفيجوال ستديو غبى قليلا فى هذه النقطه فحتى مع تغييرك الإمتداد سيظل مترجم الـ c++ هو من يترجم الكود حتى مع العلم ان الكود هو c و ذلك لتخطى هذه المشكله قم بتحديد ملف الكود داخل الـ Solution Explorer ثم اتبع الخطوات التاليه:
Project -> Properties -> C/C++ -> Advanced -> Compile As -> Compile As C Code (/TC)
الميزه فى هذه الخطوات هو انه يمكننى ترجمة اى ملف له اى امتداد لا علاقة له باللغه على اساس انه C Code او C++ Code.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
شكرا" لتفاعلكم و لكن لم يحدث جديد ، فعلت مثل ما قلت يا أخ فهد و يا أستاذ محمد و ظهر 102 خطا إملائي في ملف إسمه cmath، من هذه الأخطاء :Error 1 error C2061: syntax error : identifier 'acosf' Error 7 error C2061: syntax error : identifier 'atan2f' Error 13 error C2061: syntax error : identifier 'coshf' Error 12 error C2059: syntax error : ';'
الملف cmath يتبع لغة الـ cpp و ليس c.
استخدم الملف math.h
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
هذا هو الكود الذي كتبته في البداية:
#include<stdio.h>
#include<conio.h>
main()
{
printf("bahaa");
}و بعد ذلك كتبت هذا الكود:
#include<iostream>
using namespace std;
main()
{
printf("bahaa");
getchar();
}اقتباسالملف cmath يتبع لغة الـ cpp و ليس c.
استخدم الملف math.h
كيف أفعل هذا يا أستاذ محمد علاء؟؟
بالنسبه للكود الثاني: إستخدم :
#include <iostream> // for cout
#include <cstdio> // for getchar()
using namespace std;
main()
{
cout<< "bahaa" <<endl;
getchar();
}اخى lمكتبة iostream خاصه بلغة cpp و ليس لغة الـ c و بالتالى عند تضمينك للملف iostream سيجد مترجم لغة الـ c لديك كلمات غريبه مثل using و scope resolution operator و هكذا.
ملفات الـ header للغة الـ c دائما ما تنتهى بالإمتداد h اما لغة الـ cpp فالمفات الخاصه بها اما ان يكون لا امتداد لها او تنتهى بالـ h.
بالنسبه للمثال الأول فهو صحيح فقط انت نسيت ان تضع نوع القيمه التى ستعيدها الداله main حيث من المفترض ان يكون شكلها كالتالى
int main()
و ليس كالتالى
main()
لذا الكود الصحيح لمثالك هو
#include<stdio.h>
#include<conio.h>
int main()
{
printf("bahaa");
}و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
شكرا" لك يا أخ محمد علاء .... البرنامج أشتغل تمام..![]()
و لكن ما معنى ان الدالة main() تعود بالقيمة int؟ لأن في الكتاب الذي أذاكر منه أساسيات سي ، الدالة لا تعود بقيمة..
تم تعديل هذه المشاركة بواسطة بهاء صلاح الدين فراج في 19 مايو 2010 في 18:08
هي القيمة التي يعود بها برنامجك لنظام التشغيل
ف ٠ تعني أن البرنامج إشتغل بنجاح
غير ذلك, تعني أن هناك مشاكل في البرنامج
في لينوكس, إستخدم
echo $?
لكي تعرف القيمة التي رجعها برنامجك لنظام للينوكس (بالطبع توجد طريقة في الويندوز ولكن لا أتذكرها)
http://www.techienotes.info/2010/05/know-return-value-of-native-c-program.html
تم تعديل هذه المشاركة بواسطة {هويدي} في 21 مايو 2010 في 05:29
