• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

tonic.gpl

اعضاء
  • عدد المشاركات

    121
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة tonic.gpl

  1. لكنها لا تدعم اللغة العربية .    
  2. كلا الحلين لم يعطي النتيجة المطلوبة . انا استعمل جي سي سي . gcc main.c يعني حتى من دون تحسينات    
  3. اختراق الفيسبوك لا علاقة له بالـ سي++   معرفتك بلغة البرمجة سي وحدها لا تكفي لاختراق الفيسبوك .
  4. ربط ملفات السورس والهيدر

    ماشاء الله اخ Mr.B هل تقصد ان المصرف سيقوم بهذا اوتوماتيكيا . اي انه لن يقوم بترجمة وحدة اذا كانت مترجمة من قبل ؟ .
  5. شكرا C++er  الان اتضحت الصورة
  6. فعلا درس رائع , بارك الله فيك عندي استفسار بسيط انت قلت في بعض البرامج تجد شىء مثل unsigned char number = (unsigned char) -1;و الذي سيعطينا القيمة القصوى لهذا المتغيير في هذا المثال يعني 1111 1111, حسب كلامك -1  تعني 0001 1000 كيف 1111 1111 = 0001 1000   شكرا على الدرس  
  7. مرحبا كنت سأحمل البرنامج ولكن ما ان تبين ان حجمه 67 ميجا  :wacko:  اعدلت عن الفكرة  . اضن انك تستخدم qt ؟
  8. عمل swap لمتغيرين بدون متغير وسيط

    لكن تبقى طريقة المتغير الاضافي اسرع   بدون المتغير الاضافي void swap(int &x, int &y){ x=x+y; y=x-y; x=x-y;}المقابل بالاسمبلي __Z4swapRiS_: pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax movl (%eax), %edx movl 12(%ebp), %eax movl (%eax), %eax addl %eax, %edx movl 8(%ebp), %eax movl %edx, (%eax) movl 8(%ebp), %eax movl (%eax), %edx movl 12(%ebp), %eax movl (%eax), %eax subl %eax, %edx movl 12(%ebp), %eax movl %edx, (%eax) movl 8(%ebp), %eax movl (%eax), %edx movl 12(%ebp), %eax movl (%eax), %eax subl %eax, %edx movl 8(%ebp), %eax movl %edx, (%eax) popl %ebp retبستخدام المتغير الاضافي void swap(int &x, int &y){ int z = x; x = y; y = z;}يقابله بالاسمبلي __Z4swapRiS_: pushl %ebp movl %esp, %ebp subl $16, %esp movl 8(%ebp), %eax movl (%eax), %eax movl %eax, -4(%ebp) movl 12(%ebp), %eax movl (%eax), %edx movl 8(%ebp), %eax movl %edx, (%eax) movl 12(%ebp), %eax movl -4(%ebp), %edx movl %edx, (%eax) leave ret
  9. كنت اقصد ب Terminal نافذة الدوس , يمكنك نسخ العبارة ووضعها في ملف ذو امتداد bat . ثم وضع الملف في المسار \wxWidgets-2.8.12\build\msw ثم نقرة مزدوجة على الملف  فقط.     لكن كما قال الاخ مصطفى بما انك في بداية الطريق ينصح بتعلم win32 api  .    هناك google و بة الاف الدروس
  10. الكود بلوك به plugin يتعامل مع مكتبة  wxwidgets  اسمه wxsmith لكن يجب تثبيت المكتبة اولا  .   لتثبيت المكتبة  اولا انصحك بستخدام النسخة 2.8.12 http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.12-Setup.exe   1- تحميل 2- تثبيت 3- الدخول الى \wxWidgets-2.8.12\build\msw 4- من Terminal اكتبي mingw32-make -f makefile.gcc BUILD=release MONOLITHIC=1 UNICODE=1 SHARED=0 5 - ستستغرق العملية بعض الدقائق لكن اذا كان معالجك متعدد الطبقات يمكنك اضافة الخاصية -j2  هنا 2 تعني طبقتين 6- اضيفي المسار wxWidgets-2.8.12\lib\gcc_lib و wxWidgets-2.8.12\include الى الكود بلوك   7- كود بلوك جاهز الان لعمل تطبيق wxwidgets   بالتوفيق
  11. الحصول على قيمة Eip

    شكرا على التوضيح .
  12. الحصول على قيمة Eip

    @مصطفى void PrintEIP(int x=0){ printf("0x%x\n",*(int *)(&x-1)-9);}لماذا انقصت 9  في الاخير اليس eip محفوظ في ebp+4  مؤقتا الى غاية التعليمة ret ؟
  13. شكرا على الروابط المفيدة لا تنسى موقع اخينا عبد الله عيد الاكثر من رائع . http://www.abdullaheid.net   بحر من الدروس
  14. تمرين بسيط حول الملفات في لغة C

    http://stackoverflow.com/questions/2361385/how-to-get-a-files-size-which-is-greater-than-4-gb
  15. تمرين بسيط حول الملفات في لغة C

    وهذه مشاركتي  على السريع , لم اجرب الكود بعد ( احتمال وجود اخطاء) #ifdef UNICODEtypedef const wchar_t * spath; #elsetypedef const char * spath;#endifunsigned int Getfilelen( spath path ){unsigned int flength = 0;#if defined( WIN32 ) && defined ( UNICODE ) FILE * f = _wfopen(path,L"r"); #else // linux or windows or ... FILE * f = fopen(path,"r");#endifif (!f){ printf("could not open : %s \n",path);} fseek(f,SEEK_SET,SEEK_END); flength = ftell(f); fclose(f); return flength;}
  16. نقاش : هل عملية الضرب mul بطيئة بالفعل !

    mul تأخذ من 3 الى 4 cycles فقط في معالجات intel . هناك تعليمات مثل div قد تصل الى 70 cycles . في رأيي ترك التحسين للمصرف قد يكون احسن من الغوص في مثل هذه الامور , لان المعالجات تختلف و latency لكل تعليمة تختلف من معالج الي أخر .
  17. تعرف إلى std::stack

    stack<T, Sequence>الشىء الذي لم افهمه هو مادور sequence هنا , بالانجليزي يقلك هو : The type of the underlying container used to implement the stack  , والحالة الافتراضية له هي : deque<T>ياريت احد الاخوة يشرحلنا فائدة sequence
  18. الاستخدامات المتقدمة للدالة system

    جزاك الله خيرا , اسلوبك فعلا اكثر من رائع , مشكور اخي
  19. تحدّي الحرف الواحد !

    int i, n=42; main() { for(i=0; -i<n; i--) { printf("*"); } }
  20. كيف يكتب هذا البرنامج ( طباعة اسم النوع )

    على حد علمي RTTI تستخدم فقط على polymorphic types و ليس على الانواع العادية !   بما ان المهلة الزمنية انقضت , هل ستضع الحل او تتركه للمحاولة’
  21. ال QT  اصلا مبرمجة ب سي++ , ولكن لديها مشكل في الرخصة , فهي غير مجانية للبرامج التجارية , اضف الى ذلك انها كبيرة الحجم خصوصا اذا كنت من مستعملي mingw
  22. السلام عليكم موضوع مفيد لمن هو في بداية الطريق, المشكلة في عالمنا العربي ان اغلبية المبرمجين تعلمو بطريقة عصامية و اخذو من مصادر كثيرة و تاهو بين الاراء التي تشتت اكثر مما توجة توجية صحيح ,  النتيجة ان الوصول سيأخذ وقت طويل .
  23. عندما تستخدم win32 api فأنت تبرمج ل ويندوز فقط , كما ان كتابة برنامج كبير ب api فقط امر مرهق , في لغة سي بلاس بلاس لاتوجد خيارات سهلة , على عكس لغات مثل اوبجكت بسكال (دلفي , لازارس) التي تتيح لك تصميم واجهات معقدة و متعددة المنصات بستخدام الفأرة فقط ,   الوقت الذي ستستغرقه في كتابة الواجهات برمجيا ب سي ++ , يكفي لكتابة برامج عديدة ب لغات اخرى مثلما ذكرت , انا لا انقص من عزيمتك و لكن في سنوات ماضية كانت لدي النية في كتابة برامج ب سي++ بستخدام api لكن اكتشفت ان الامر مضيعة للوقت , حاليا استخدم لازارس .   ولك الاختيار
  24. الحل الثاني صحيح , سيطبع 4 3 2 1 مجرب ب gcc و VC
  25. و هذا حل اخر الملف الاول يحتوي #define printf(n) printf("1 2 3 4");الملف الثاني فارغ