Language avec la méme syntaxe que le C mais plus rapide au dévelopement ?

Signaler
Messages postés
52
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
7 décembre 2011
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjours,

Cela fait maintenant 1 ans que je développe en C et C++ , ce sont les seul langage de programmation logiciel que je connait et maintenant j'aimerais savoir si il existe d'autre langage avec la même syntaxe mais plus rapide au développement (c'est peut étre moi qui suis long ^^ ).

j'ai actuellement un gros projet et cela fait 2 mois que j'ai commencer et cela na pas trop avancer.

Je développe en API Win32 sans MFC le problème viens peut être de la.
En 2 moi (2h par jour) j'ai juste réussi a faire un chat avec authentification ,message différer et multidestinataire.

J'ai aussi quelque problème pour l'interface graphique que j'aimerais un peut dans le style de outlook 2007 et malheureusement cela ne ressemble je n'est rien comprit auriez vous un bon livre ou tutoriel sur ce type d'interface graphique?

6 réponses

Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
114
Seulement 1 an ? C'est très peu. Il n'y a pas de miracle, seul la pratique te permettra de t'améliorer.

Toutefois si tu cherches à faire des interfaces graphiques, tu as plusieurs choix:
- C++ avec Qt (portable, donc ton code devrait fonctionner sous toutes les plateformes). Teste QtCreator.
- C ou C++ avec GTK (portable, mais moins bon que Qt)
- C ou C++ avec wxWidget (portable, mais moins bon que Qt)
- C++ avec MFC (windows uniquement, donc non portable)
- C# avec le système de fenêtre intégré (pas mal, mais il te faut apprendre un autre langage).

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,
Sinon tu peux aussi continuer en Win32 sans MFC !
Ca reste le plus performant, polyvalent et portable sous Windows.

Côté productivité, c'est sûr qu'un bon gros RAD genre C++ Builder, Delphi ou VB6, c'est plus rapide pour faire des interfaces simples (Hop, un bouton, hop, un edit...). Mais ça ne facilite en rien les interfaces travaillées telles que celle de outlook.

Et puis les dégradés bleu clair, c'est pas trop dur non plus !


#ifdef UNICODE
#define _T(x) L ## x
typedef unsigned short TCHAR;
#else
#define _T(x) x
typedef char TCHAR;
#endif

#define _WIN32_WINNT 	0x0500
#define WINVER      	0x0500

#include <windows.h>

HINSTANCE _hThisInstance;              /* Handle du module                    */
HWND _hWnd;                            /* Handle de la fenêtre                */
LPTSTR _lpAppName = _T("Gradient");    /* Nom de l'appli                      */

TRIVERTEX _lpVertices[2];    /* Les deux coins du rectanles et leurs couleurs */
GRADIENT_RECT _gradientRect; /* Le rectangle de dégradé formé des 2 vertices  */

WORD __stdcall Err_ShowLast(TCHAR* lpTitle)
{
  DWORD nLastError;
  LPTSTR lpMessageBuffer;

  nLastError = GetLastError();

  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
                NULL, nLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                (TCHAR*)(void*)&lpMessageBuffer, 0, NULL);

  MessageBox(NULL, lpMessageBuffer, lpTitle, MB_OK | MB_ICONERROR);

  LocalFree(lpMessageBuffer);
  return 1;
}

LRESULT CALLBACK WindowProcedure(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
  RECT clientRect;            /* Zone de la fenêtre à dessiner                 */
  HDC hDc;                    /* DC de dessin                                  */
  int bHandled;               /* Pour savoir si le message est traité          */
  long nResult;

  nResult = 0;
  bHandled = 0;
  switch (nMessage)
  {
    case WM_SIZE:
      InvalidateRect(hWnd, NULL, TRUE);
      bHandled = 1;
      break;
    case WM_ERASEBKGND:
      hDc = (HDC)wParam;
      GetClientRect(hWnd, &clientRect);
      _lpVertices[1].x = clientRect.right;
      _lpVertices[1].y = clientRect.bottom;
      GradientFill(hDc, _lpVertices, 2, &_gradientRect, 1, GRADIENT_FILL_RECT_V);
      nResult = 1;
      bHandled = 1;
      break;
    case WM_DESTROY:
      /* On signale que le thread va s'arrêter */
      PostQuitMessage(0);
      bHandled = 1;
      break;
  }
  if (! bHandled)
    nResult = DefWindowProc(hWnd, nMessage, wParam, lParam);
  return nResult;
}

BOOL __stdcall CreateMyWindow()
{
  WNDCLASSEX wincl;       /* Classe de la fenêtre utilisée                    */
  int nResult;

  nResult = 0;

  /* Création de la classe de fenêtre */
  wincl.cbSize = sizeof(WNDCLASSEX);
  wincl.style = 0;
  wincl.lpfnWndProc = WindowProcedure;
  wincl.cbClsExtra = 0;
  wincl.cbWndExtra = 0;
  wincl.hInstance = _hThisInstance;
  wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
  wincl.hbrBackground = NULL;
  wincl.lpszMenuName = 0;
  wincl.lpszClassName = _lpAppName;
  wincl.hIconSm = NULL;

  /* Enregistrement de la classe */
  if (! RegisterClassEx(&wincl)) goto the_end;

  /* Création de la fenêtre */
  _hWnd = CreateWindowEx(0, _lpAppName, _lpAppName,
                         WS_OVERLAPPEDWINDOW,
                         CW_USEDEFAULT, CW_USEDEFAULT, 500, 200,
                         HWND_DESKTOP, NULL, _hThisInstance, NULL);
  if (! _hWnd) goto the_end;

  /* Affichage de la fenêtre */
  ShowWindow (_hWnd, SW_SHOW);

  nResult = 1;
the_end:
  return nResult;
}

/**
 * Main
 */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  MSG message;                        /* Messages envoyés à l'application     */
  int nResult;

  /* Récupération du handle du module */
  _hThisInstance = hInstance;

  _lpVertices[0].x     = 0;
  _lpVertices[0].y     = 0;
  _lpVertices[0].Red   = 0xC800;
  _lpVertices[0].Green = 0xE100;
  _lpVertices[0].Blue  = 0xFF00;
  _lpVertices[0].Alpha = 0x0000;

  _lpVertices[1].x     = 0;
  _lpVertices[1].y     = 0;
  _lpVertices[1].Red   = 0x7D00;
  _lpVertices[1].Green = 0xA500;
  _lpVertices[1].Blue  = 0xE100;
  _lpVertices[1].Alpha = 0x0000;

  _gradientRect.UpperLeft  = 0;
  _gradientRect.LowerRight = 1;

  if (! CreateMyWindow())
  {
    nResult = Err_ShowLast(_T("Cannot create main window"));
    goto the_end;
  }

  /* Boucle de traitement des messages */
  while (GetMessage(&message, NULL, 0, 0))
  {
    TranslateMessage(&message);
    DispatchMessage(&message);
  }
  nResult = message.wParam;

the_end:
  return nResult;
}
Messages postés
52
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
7 décembre 2011

merci pour vous réponse.

Je pense que je vais rester sur le c++, je vois qu'il y a encore pas mal de chose que j'ai a apprendre car je n'est rien comprit au code de rt15

Aprés quelque recherche j'ai apprit ce qu'était la GDI et je ne mi était jamais vraiment pencher dessus ( apart pour la police et les couleur ).

Je pense que aprés avoir assimiler tous sa je pourrait faire l'interface que je souhaite.

j'ai commencer a regarder les tuto sur developpez.com mais je préféreré un bon bouquin , en auriez vous a me conseiller?

jérémy
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
En anglais, très bon bouquins sur le dev Windows tu as le CP5 et le JR4 sur cette page.
Messages postés
52
Date d'inscription
jeudi 23 avril 2009
Statut
Membre
Dernière intervention
7 décembre 2011

J'ai oublier de préciser...

Je ne comprend pas très bien l'anglais ( j'arrive a me débrouiller sur msdn avec le peut de vocabulaire que j'ai mais un livre je ne peut pas )

Il n'existe pas un livre en français (peut importe le prix)?


jérémy
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Arf... Je n'en connais pas, désolé.