الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤالين

مغلق
بدأه عبدالرحمن في 29 مايو 2001 · 3 رد · 1,510 مشاهدة · في قسم المواضيع الهامة في قسم السي /سي++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأول: عندما اسوي برنامج conslo أي انه للدوس واسوي البرنامج exe وعندما افتحه ينفتح لمدة ثانية واحد ثم ينغلق .. فما هو الحل?

الثاني: أبغى خطوات بسيطة لعمل برنامج في الفيجوال سي بلس بلس

للوندوز أي win32 application من الألف ألى اما اسويه exe

وجزاكم الله الف خير ..

#2

الاول:

يبدو انك تنهي البرنامج اقصد دالة الـ main بكلمة return لذلك لم تظهر لك Press anykey to continue حاول انهاء البرنامج باي دالة من دوال وقت التنفيذ run time function حتى تنتظر ادخال ولو حرف من المستخدم ثم تنهي البرنامج..

الثاني:

يبدو انك تريد تصميم تطبيق Win32 قياسي وبدون استخدام مكتبة MFC، تحتاج الى الكثير من الاكواد طبعا اول سكر لابد ان يكون:

#include

حتى تتمكن من الوصول الى اجراءات API، بعد ذلك تقوم بانجاز دالة WinMain وعن طريقها تقوم بتعرفة Class للنافذة وهذه الكلاس ليس المقصود بها الكلاس الموجود في مصطلح الـ OOP عن طريق كلمة classs هنا اتكلم عن كلاس خاصة للنافذة وهي تصفها عن طريق استخدام النوع WNDCLASS لتسجيليها.

ثم تنشئ الحلقة الانهائية والخاصة برسائل النظام (التي تعرف في عالم Visual Basic بالاحداث) والتي بدورها تستدعي الاجراء الذي يفسر الرسائل ونوعها. بكل تأكيد هذا الاجراء يستخدم اسوب الاستدعاء الخلفي CALLBACK

هذا مثال وجدته في احد ملفاتي:

#include 
#include "generic.h"

#if defined (win32)
   #define IS_WIN32 TRUE
#else
   #define IS_WIN32 FALSE
#endif

HINSTANCE hInst;        // Current program instance

LPCTSTR lpszApplicationName = "Generic";
LPCTSTR lpszTitle =   "Generic Windows Application";

BOOL RegisterWin95(CONST WNDCLASS* lpwc);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
 {
   MSG msg;
   HWND hWnd;
   WNDCLASS wc;

   wc.style          = CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc    = (WNDPROC)WndProc;
   wc.cbClsExtra     = 0;
   wc.cbWndExtra     = 0;
   wc.hInstance      = 0;
   wc.hIcon          = LoadIcon(hInstance, lpszApplicationName);
   wc.hCursor        = LoadCursor(NULL, IDC_ARROW);
   wc.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
   wc.lpszMenuName   = lpszApplicationName;
   wc.lpszClassName  = lpszApplicationName;

   if (!RegisterWin95(&wc))
      return(0L);

   hInst = hInstance;
   hWnd = CreateWindow (lpszApplicationName,
                        lpszTitle,
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT, 0,
                        CW_USEDEFAULT, 0,
                        NULL,
                        NULL,
                        hInstance,
                        NULL
                       );
   if (!hWnd)
      return(0L);

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   while(GetMessage(&msg, NULL, 0,0))
     {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
     }
   return(msg.wParam);
 }

BOOL RegisterWin95(CONST WNDCLASS* lpwc)
 {
   WNDCLASSEX wcex;

   wcex.style           = lpwc->style;
   wcex.lpfnWndProc     = lpwc->lpfnWndProc;
   wcex.cbClsExtra      = lpwc->cbClsExtra;
   wcex.cbWndExtra      = lpwc->cbWndExtra;
   wcex.hInstance       = lpwc->hInstance;
   wcex.hIcon           = lpwc->hIcon;
   wcex.hCursor         = lpwc->hCursor;
   wcex.hbrBackground   = lpwc->hbrBackground;
   wcex.lpszMenuName    = lpwc->lpszMenuName;
   wcex.lpszClassName   = lpwc->lpszClassName;
   wcex.cbSize          = sizeof(WNDCLASSEX);
   wcex.hIconSm         = LoadIcon(wcex.hInstance, "SmallIcon");

   return(RegisterClassEx(&wcex));
 }

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
   switch (uMsg)
    {
      case WM_COMMAND:
         switch(LOWORD(wParam))
          {
            case IDM_TEST:
               break;

            case IDM_EXIT:
               DestroyWindow(hWnd);
               break;
          }
         break;

      case WM_DESTROY:
         PostQuitMessage(0);
         break;

      default:
         return(DefWindowProc(hWnd, uMsg, wParam, lParam));
    }
   return(0L);
 }

بالتوفيق،

http://www.vb2top.com

#3

اعمل call للـ function اللي اسمها () getch

وعرف فوق الـ hear file تبعها اللي اسمه

#include

#4

الله يعطيك الف عافية يا أخوي تركي

معليش على التاخير

ومشكور يا أخ كاتاكوتا على المتابعة

هذا الموضوع مغلق.

مواضيع مشابهة