Oui c'est exactement ce qui me laisse de l'espoir pour atteindre un jour mon rêvecrisot a écrit :J'aime bien Purebasic, parce-que justement il ressemble beaucoup au C, mais avec une syntaxe simplifiée et des variables auto-declarantes (entre autres).
Au debut j'ai trouvé et choisi PB parce que c'etait un Basic, qu'il etait portable (sens clef USB), petit, bas niveau donc puissant, qu'il creait des "vraies" DLL aussi facilement que des EXE.
Puis avec le temps, est venu se greffer la puissance des forums et de leurs utilisateurs et en dernier je me suis aperçu de la similarité avec le C ce qui m'a encore conforté dans mon choix.
Maintenant je vais faire plaisir à FALSAM, si un jour j'arrive à atteindre mon rêve...pour créer ma fenetre je devrais ecrire ....
C'est long....mais il parait que plus c'est long....plus c'est bon
Code : Tout sélectionner
#include <windows.h>
HWND WindowHandle; /* Handle de la fenêtre que l'on va créée */
HINSTANCE _hInstance; /* Instance du programme */
/* Nom de la classe que l'on va donner lors de
l'enregistrement de la classe(Ca peut être
n'importe quoi et sans espaces si possible :)) */
const char WinClassName[] = "MyWindowClass";
/* Prototype de la procédure qui va recevoir les messages envoyer */
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow);
void Eric(HWND hwnd);
/* Entré du programme */
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow)
{
/* Déclaration des variables */
/* Va contenir les messages */
MSG message;
/* Va servir pour créé la classe */
WNDCLASSEX wc;
/* Sauvegarde l'instance du programme */
_hInstance = hInstance;
/* Création de la classe */
wc.hInstance = _hInstance; /* Instance du programme */
wc.lpszClassName = WinClassName; /* Nom de la classe */
wc.lpfnWndProc = WindowProcedure; /* Adresse de la procédure qui va recevoir les messages */
wc.style = CS_DBLCLKS; /* Styles! */
wc.cbSize = sizeof(WNDCLASSEX); /* Taille de la classe(ou struct) */
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); /* Grande icône */
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); /* Petite icône */
wc.hCursor = LoadCursor(NULL, IDC_ARROW); /* Curseur */
wc.lpszMenuName = NULL; /* Menu */
wc.cbClsExtra = 0; /* Optionnel */
wc.cbWndExtra = 0; /* Optionnel */
wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); /* Couleur de fond de la fenêtre */
/* Enregistre la classe */
if (!RegisterClassEx(&wc))
return 0; /* En cas d'échec, renvoie zéro(Ferme le programme) */
/* Crée la fenêtre */
WindowHandle = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, WinClassName, "Ma première fenêtre!!!",\
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, HWND_DESKTOP, NULL, _hInstance,\
NULL);
/* En cas d'échec, renvoie zéro */
if (WindowHandle == NULL)
return 0; /* Ferme le programme */
/* Affiche la fenêtre */
ShowWindow(WindowHandle, SW_SHOW);
/* Met à jour la fenêtre */
UpdateWindow(WindowHandle);
/* Tant qu'on recoi des messages, on boucle */
while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
/* Fin du programme */
return message.wParam;
}