Accueil > Forum > > > > Portée des variables avec MFC : HELP !!!
Portée des variables avec MFC : HELP !!!
vendredi 14 novembre 2003 à 23:37:36 |
Portée des variables avec MFC : HELP !!!

sprintjeffC
|
salut, j'ai commençé à coder pour la 1ere fois en C et MFC avec devc++ ... c cool. Petit problème toute fois : j'ai une main (spéciale en MFC) et une procedure callback pour gerer les evenements de la fenetre definie dans cette main. en global, en gros, je n'ai que les handles de fenetre et d'editbox. setwindowtext ne fonctionne que dans la main et la proc callback. getwindowtext ne fonctionne lui que dans la main ! Pourquoi ? Comment faire pour pouvoir utiliser ces methodes partout ? ci-joint : mon prg "allégé" ... merci d'avance !!! sprintjeff ... // Déclaration handle de la fenêtre HWND mhwnd; // Déclaration handle des editbox HWND hedbEDB1; HWND hedbEDB2; char sTmp[1000]= " "; LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM); // Gestion des évènements sur la fenêtre // La main avec MFC int WINAPI WinMain(HINSTANCE FirstInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow) { MSG msg; WNDCLASSEX wcedb; WNDCLASSEX wcbtn; ... // Boucle qui permet au programme de tourner sans arrêt et de guetter les // évènement pour les envoyer à la procédure qui les gère (ci dessous) while (GetMessage(&msg, NULL, 0, 0)) { // JE "GRUGE" COMME CA avec un buffer en global // ca marche mais c moche ;-) GetWindowText(hedbEDB1, sTmp, 1000); TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } // Evènements sur la fenêtre LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { Ici (sur une pression d'un bouton) je dispose du buffer pour bosser avec ce qui est saisi dans mon editbox ... pourquoi un getwindowtext ne marche pas ici ??? ... }
|
|
vendredi 14 novembre 2003 à 23:48:36 |
Re : Portée des variables avec MFC : HELP !!!

aardman
|
Salut, Vu que hedbEDB1 est en global, GetWindowText(...) devrait fonctionner partout. Et aussi, ton prog n'est pas en MFC. C'est du C tout simplement.
|
|
samedi 15 novembre 2003 à 00:40:17 |
Re : Portée des variables avec MFC : HELP !!!

sprintjeffC
|
merci pour ta reponse,
je sais mais ça marche pas :-///
MFC c pas pour microsoft framework quelque chose ??? framework pour ensemble de librairies ... ici c windows.h ... donc c bien du C avec MFC non ??? +
|
|
samedi 15 novembre 2003 à 00:50:02 |
Re : Portée des variables avec MFC : HELP !!!

aardman
|
Salut, MFC = Microsoft Foundation Class C'est un truc MS, donc disponible que sur Visual studio et autres, pas sur Devc++.
Pour GetWindowText(...), est tu sur que le buffer est assez gros et que le HWND est valide ? Sinon, poste le bout de code qui va pas.
|
|
samedi 15 novembre 2003 à 01:07:37 |
Re : Portée des variables avec MFC : HELP !!!

sprintjeffC
|
ok mais qui a codé windows.h alors ??? je fais donc du MFC "libre" excellent ...
je code depuis des années en VB pas question que je me mette à vc++ (même s'il est + fort au niveau objet) j'en ai mare des runtime et des dlls :-)
voici :
met le get et le set dans la main ça marche la sur le bouton dans la callback : marche pas grrrr ....
merci 1000x !!!
// rappel normes de nommage des variables // dsl je suis VB-iste à la base ;-) // 'm' si variable niveau module, rien si local // sur 3 caratères : rappel type variable // sur n caracteres : non de la variable // ex : mhwndMaFenetre = handle pour window niveau module MaFenetre // si type utilisé une seule fois le préfixe suffit (ex : mhwnd)
#include <windows.h> // include pour programmation windows #include <string.h> // include pour programmation windows
#define ID_EDITBOX_1 1 // ID editbox #define ID_EDITBOX_2 2 #define ID_BUTTON_1 1 // ID boutons
HWND mhwnd; // déclaration handle de la fenêtre HWND hedbEDB1; // déclaration handle des editbox HWND hedbEDB2;
// Gestion des évènements sur la fenêtre LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);
// La main avec MFC int WINAPI WinMain(HINSTANCE FirstInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow) {
MSG msg; WNDCLASSEX wcedb; WNDCLASSEX wcbtn;
// Initialisation classe Editbox wcedb.hInstance = FirstInstance; // Instance wcedb.lpszClassName = "NitRic_EditBox"; // Nom de la classe wcedb.lpfnWndProc = WinProc; // Adresse de la procédure wcedb.style = CS_DBLCLKS; // Style wcedb.cbSize = sizeof(WNDCLASSEX); // Taille wcedb.hIcon = LoadIcon(NULL, IDI_APPLICATION); // Grande icone wcedb.hIconSm = LoadIcon(NULL, IDI_APPLICATION); // Petite icone wcedb.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur wcedb.lpszMenuName = NULL; // Menu wcedb.cbClsExtra = 0; // ... wcedb.cbWndExtra = 0; // ... wcedb.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); // Couleur de fond if (!RegisterClassEx(&wcedb)) { MessageBox(NULL, "Erreur lors de l'initialisation de la classe editBox.", "Erreur", MB_OK); return 0; }
// Initialisation classe Bouton wcbtn.hInstance = FirstInstance; // Instance wcbtn.lpszClassName = "NitRic_Button"; // Nom de la classe wcbtn.lpfnWndProc = WinProc; // Adresse de la procédure wcbtn.style = CS_DBLCLKS; // Style wcbtn.cbSize = sizeof(WNDCLASSEX); // Taille wcbtn.hIcon = LoadIcon(NULL, IDI_APPLICATION); // Grande icone wcbtn.hIconSm = LoadIcon(NULL, IDI_APPLICATION); // Petite icone wcbtn.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur wcbtn.lpszMenuName = NULL; // Menu wcbtn.cbClsExtra = 0; // ... wcbtn.cbWndExtra = 0; // ... wcbtn.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); // Couleur de fond if (!RegisterClassEx(&wcbtn)) { MessageBox(NULL, "Erreur lors de l'initialisation de la classe Bouton.", "Erreur", MB_OK); return 0; }
//Instanciation d'une fenêtre mhwnd = CreateWindowEx(0, "NitRic_EditBox", "Mes listes e-mail ...", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 780, 700, HWND_DESKTOP, NULL, FirstInstance, NULL); if (mhwnd == NULL) { MessageBox(NULL, "Erreur lors de la création de la fenêtre.", "Erreur", MB_OK); return 0; }
//Instanciation des editbox HWND hedbEDB1 = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, "EDIT", "", WS_VISIBLE|WS_CHILD|ES_AUTOHSCROLL|ES_NOHIDESEL,\ 10, 10, 100, 25, mhwnd,\ (HMENU)ID_EDITBOX_1, FirstInstance, NULL); HWND hedbEDB2 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_VISIBLE|WS_CHILD|ES_AUTOHSCROLL|ES_NOHIDESEL|\ ES_AUTOVSCROLL|ES_MULTILINE|ES_WANTRETURN|ES_LEFT|\ WS_VSCROLL|WS_HSCROLL,\ 10, 50, 750, 645, mhwnd, (HMENU)ID_EDITBOX_2, FirstInstance, NULL); if (hedbEDB1 == NULL && hedbEDB2 == NULL) { MessageBox(mhwnd, "Erreur lors de la création d'une editbox.", "Erreur", MB_OK); return 0; }
// Instanciation des boutons HWND hbtnBTN1 = CreateWindowEx(0, "BUTTON", "", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|\ BS_NOTIFY|BS_TEXT, 120, 11, 30, 25, mhwnd,\ (HMENU)ID_BUTTON_1, FirstInstance, NULL); if (hbtnBTN1 == NULL) { MessageBox(mhwnd, "Erreur lors de la création d'un boutons", "Erreur", MB_OK); return 0; }
// Ecrit 'GO' sur le boutons SetWindowText(hbtnBTN1, "GO"); UpdateWindow(hbtnBTN1);
// Affichage de la fenêtre ShowWindow(mhwnd, SW_SHOW); UpdateWindow(mhwnd);
// Met le focus sur l'editbox 1 SetFocus(hedbEDB1);
// Boucle qui permet au programme de tourner sans arrêt et de guetter les // évènement pour les envoyer à la procédure qui les gère (ci dessous) while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;
}
// Evènements sur la fenêtre LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
char sPassword[50]= " ";
switch (msg) {
// Fermeture du programme case WM_DESTROY:
// Ferme le programme PostQuitMessage(0); break;
// Fermeture de la fenêtre via le menu système ou la croix(X) noir case WM_CLOSE:
// Décharge la fenêtre DestroyWindow(hwnd); break;
// Réception des évènements sur les objets case WM_COMMAND:
// Editbox if (LOWORD(wParam) == ID_EDITBOX_1) { switch (HIWORD(wParam)) {
case EN_ERRSPACE:
MessageBox(mhwnd, "Mémoire insuffisante sur la station !!!", "Erreur", MB_OK); break;
case EN_MAXTEXT:
MessageBox(mhwnd, "Le nombre maximum de caractères dans une editbox a été atteint !!!", "Erreur", MB_OK); break;
case EN_CHANGE: //MessageBox(mhwnd, "Le contenu d'une editbox à changé.", "EN_CHANGE", MB_OK); break;
default:
break;
}
}
// Bouton // Vérifie que c'est bien le bouton et vérifie qu'on à cliqué dessus if ((LOWORD(wParam) == ID_BUTTON_1) && (HIWORD(wParam) == BN_CLICKED)) {
GetWindowText(hedbEDB1, sPassword, 49); MessageBox(mhwnd, sPassword, "Debug", MB_OK|MB_ICONINFORMATION);
SetWindowText(hedbEDB2, "coucou"); UpdateWindow(hedbEDB2);
}
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam); break;
}
return 0;
}
|
|
samedi 15 novembre 2003 à 02:13:41 |
Re : Portée des variables avec MFC : HELP !!!

aardman
|
Salut, Windows.h c'est aussi de MS. Je suis pas expert en MFC, cherche un peu des sources de ce type sur le site, tu verra tout de suite la difference entre du code ecrit sans MFC (comme le tiens) et du code ecrit avec MFC.
Pour GetWindowText, le handle hedbEDB1 est NULL avant d'appeller la fonction... Par contre je sais pas pourquoi, désolé.
|
|
samedi 15 novembre 2003 à 12:55:00 |
Re : Portée des variables avec MFC : HELP !!!

sprintjeffC
|
merci qd même !
bon j'ai trouvé en me nalladant sur le forum getwindowtext est une fonction !!! il faut coder : int n; n = getwindowtext ...
pour le handle null je sais pas non plus ce qui se passait ... g repris un programme proche qui marchait et tout est ok maintenant :
// rappel normes de nommage des variables // dsl je suis VB-iste à la base ;-) // - 'g' si variable niveau global, rien si local // - sur 3 caratères : rappel type variable // - sur n caracteres : non de la variable // ex : ghwndMaFenetre = handle pour window niveau global MaFenetre // si utilisé une seule fois le préfixe suffit (ex : ghwnd)
#include <string.h> // pour strcpy, ... #include <windows.h> // include pour programmation windows
#define ID_EDITBOX_1 1 // ID editbox #define ID_EDITBOX_2 2 #define ID_BUTTON_1 1 // ID boutons #define ID_BUTTON_2 2
HWND ghwnd; // Déclaration handle de la fenêtre
HWND ghedbEDB1; // Déclaration handle des editbox HWND ghedbEDB2;
// Gestion des évènements sur la fenêtre LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);
// La main avec windows.h int WINAPI WinMain(HINSTANCE FirstInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow) {
MSG msg; WNDCLASSEX wcedb; WNDCLASSEX wcbtn;
// Initialisation classe Editbox wcedb.hInstance = FirstInstance; // Instance wcedb.lpszClassName = "NitRic_EditBox"; // Nom de la classe wcedb.lpfnWndProc = WinProc; // Adresse de la procédure wcedb.style = CS_DBLCLKS; // Style wcedb.cbSize = sizeof(WNDCLASSEX); // Taille wcedb.hIcon = LoadIcon(NULL, IDI_APPLICATION); // Grande icone wcedb.hIconSm = LoadIcon(NULL, IDI_APPLICATION); // Petite icone wcedb.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur wcedb.lpszMenuName = NULL; // Menu wcedb.cbClsExtra = 0; // ... wcedb.cbWndExtra = 0; // ... wcedb.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); // Couleur de fond if (!RegisterClassEx(&wcedb)) { MessageBox(NULL, "Erreur lors de l'initialisation de la classe editBox.", "Erreur", MB_OK); return 0; }
// Initialisation classe Bouton wcbtn.hInstance = FirstInstance; // Instance wcbtn.lpszClassName = "NitRic_Button"; // Nom de la classe wcbtn.lpfnWndProc = WinProc; // Adresse de la procédure wcbtn.style = CS_DBLCLKS; // Style wcbtn.cbSize = sizeof(WNDCLASSEX); // Taille wcbtn.hIcon = LoadIcon(NULL, IDI_APPLICATION); // Grande icone wcbtn.hIconSm = LoadIcon(NULL, IDI_APPLICATION); // Petite icone wcbtn.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur wcbtn.lpszMenuName = NULL; // Menu wcbtn.cbClsExtra = 0; // ... wcbtn.cbWndExtra = 0; // ... wcbtn.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); // Couleur de fond if (!RegisterClassEx(&wcbtn)) { MessageBox(NULL, "Erreur lors de l'initialisation de la classe Bouton.", "Erreur", MB_OK); return 0; }
// Instanciation fenêtre ghwnd = CreateWindowEx(0, "NitRic_EditBox", "Mes e-mails ...", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 780, 700, HWND_DESKTOP, NULL, FirstInstance, NULL); if (ghwnd == NULL) { MessageBox(NULL, "Erreur lors de la création d'une fenêtre.", "Erreur", MB_OK); return 0; }
// Instanciation editbox ghedbEDB1 = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, "EDIT", "", WS_VISIBLE|WS_CHILD|ES_AUTOHSCROLL|ES_NOHIDESEL,\ 10, 10, 100, 25, ghwnd,\ (HMENU)ID_EDITBOX_1, FirstInstance, NULL); ghedbEDB2 = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_VISIBLE|WS_CHILD|ES_AUTOHSCROLL|ES_NOHIDESEL|\ ES_AUTOVSCROLL|ES_MULTILINE|ES_WANTRETURN|ES_LEFT|\ WS_VSCROLL|WS_HSCROLL,\ 10, 50, 750, 600, ghwnd, (HMENU)ID_EDITBOX_2, FirstInstance, NULL); if (ghedbEDB1 == NULL && ghedbEDB2 == NULL) { MessageBox(ghwnd, "Erreur lors de la création d'une editbox.", "Erreur", MB_OK); return 0; }
// Instanciation bouton HWND hbtnBTN1 = CreateWindowEx(0, "BUTTON", "", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|\ BS_NOTIFY|BS_TEXT, 120, 11, 30, 25, ghwnd,\ (HMENU)ID_BUTTON_1, FirstInstance, NULL); if (hbtnBTN1 == NULL) { MessageBox(ghwnd, "Erreur lors de la création d'un bouton", "Erreur", MB_OK); return 0; }
// Ecrit 'GO' sur les boutons SetWindowText(hbtnBTN1, "GO"); UpdateWindow(hbtnBTN1);
// Affichage de la fenêtre ShowWindow(ghwnd, SW_SHOW); UpdateWindow(ghwnd);
// Met le focus sur l'editbox 1 SetFocus(ghedbEDB1);
// Boucle qui permet au programme de tourner sans arrêt et de guetter les // évènement pour les envoyer à la procédure qui les gère (ci dessous) while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;
}
// Evènements sur la fenêtre LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
int n; char sPassword[50] = " ";
switch (msg) {
// Fermeture du programme case WM_DESTROY:
// Ferme le programme PostQuitMessage(0); break;
// Fermeture de la fenêtre via le menu système ou la croix(X) noir case WM_CLOSE:
// Décharge la fenêtre DestroyWindow(hwnd); break;
// Réception des évènements sur les objets case WM_COMMAND:
// Les editbox if (LOWORD(wParam) == ID_EDITBOX_1 || LOWORD(wParam) == ID_EDITBOX_2 ) { switch (HIWORD(wParam)) {
case EN_ERRSPACE:
MessageBox(ghwnd, "Mémoire insuffisante sur la station !!!", "Erreur", MB_OK); break;
case EN_MAXTEXT:
MessageBox(ghwnd, "Le nombre maximum de caractères dans une editbox a été atteint !!!", "Erreur", MB_OK); break;
case EN_CHANGE: //MessageBox(mhwnd, "Le contenu d'une editbox à changé.", "EN_CHANGE", MB_OK); break;
default:
break;
}
}
// Bouton // Vérifie que c'est bien le bouton et vérifie qu'on à cliqué dessus if ((LOWORD(wParam) == ID_BUTTON_1) && (HIWORD(wParam) == BN_CLICKED)) {
// Affiche un MessageBox // MessageBox(mhwnd, "Vous avez cliqué sur le Bouton !!!", "BN_CLICKED", MB_OK|MB_ICONINFORMATION);
// Récupère le password n = GetWindowText(ghedbEDB1, sPassword, 50);
// Le teste if (strcmp(sPassword,"jay")== 0) { SetWindowText(ghedbEDB2, "coucou"); UpdateWindow(ghedbEDB2); } else { MessageBox(ghwnd, "Accès refusé ...", "Authentification", MB_OK|MB_ICONINFORMATION); SetWindowText(ghedbEDB2, ""); UpdateWindow(ghedbEDB2); }
}
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam); break;
}
return 0;
}
|
|
samedi 15 novembre 2003 à 14:12:27 |
Re : Portée des variables avec MFC : HELP !!!

aardman
|
Salut, Le "n =" devant GetWindowText ne change rien. SetWindowText(...) est aussi une fonction et tu n'a pas besoin de mettre ca devant pour que ca fonctionne. Aussi, normalement on traite les CreateWindowEx(...) dans le message WM_CREATE de la fenetre.
Enfin, ca marche, c'est le principal.
|
|
Cette discussion est classée dans : mfc, hwnd, msg, main, callback
Répondre à ce message
Sujets en rapport avec ce message
ressources et API !!!! [ par Xs ]
salut !voila, pour me simplifier la tache, j'utlise les ressources pour creer une boite de dialog (sous VC++ 6).mais j'obtiens, lors de la compilation
AU SECOURS PB projet MFC utilisation callback [ par vinceVD ]
Je souhaite communiquer entre 2 appli en utilisant les postmessage (j'ai une appli Windev et une appli C++ MFC)Tu coté de windev pas de pb mais du cot
aide moi acompiler ce graph stp [ par temoin ]
Bonjour mon erreur est ceci je tout suivi a la lettre je mais les link et je installer le sdk de microsoft qui fait le 200 meg et auusi je mais les li
crer "dialog non modal" [ par comfm ]
BonjourJe n'arrive pas à créer une boite de dialogue non modal, c'est à dire celle qui permet d'être tjs affichée et on peut cliquer derriere sans pro
Dll + LoadLibrary [ par Manson ]
Salut,voila, j'ai fais une dll dont le code est le suivant :void __declspec(dllexport)show_msg(HWND hWnd, char *msg){ MessageBox(hWnd, msg, "Dll Powa
Probleme d affichage [ par Scythale ]
Lorsque j'execute ce programme voici ce que dit mon compilateur(borland C++): you have accidentely use the old dummy version of OwlMain.Je n'arrive pa
Utilisation d'une fonction callback [ par laurentl2000 ]
Bonjour, Voici une fonction callback destinée à envoyer les titres des fenêtres IE ouvertes dans une listbox... BOOL CALLBACK EnumWindowsProc(HWND hwn
Colorier un static : HEeeeeeeelp !!! [ par sprintjeffC ]
salut @ tousje me mets a la programmation windows en C/C++ (pas VC++ merci ... quitte à faire du microsoft je préfère VB ;-). Je démarrai pas mal et t
Prob WIN32 [ par AngeloVivaldi ]
bonjour, voici un code ke g tapé pour mon apprentissage de la prog Graphique :#include LRESULT CALLBACK WinProc(HWND hWnd, UINT uMsg, WPARAM wParam, L
CALLBACK ; HWND késako? [ par Spiffou ]
bonjour à tous,je débute en c++ et je tente de faire un prog utilisant les threads et les sockets non bloquant...j'ai vu dans plusieurs sources et tut
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|