Excellent tutoriel : La programmation de l'API Windows en C++ par Bob :
http://bob.developpez.com/tutapiwin/
Excellent tutoriel : La programmation de l'API Windows en C++ par Bob :
http://bob.developpez.com/tutapiwin/
je suis tout a fait d'accord il m'a beaucoup aidé pour debuter. un grand merci
Oui !!!
Vraiment un grand merci à Bob !!!
ce tutorial est vraiment bien fait, il permet de rapidement faire mumuse avec les API Windows quand on n'y connait rien de rien ! De plus je trouve ca assez ludique, et bien qu'il soit tres peu détaillé, il est tres bien formulé, ca permet de se mettre dans le bain sans etre découragé.
Ce que j'ai apprécié aussi c'est que malgrès qu'il commence à dater, il est toujours à l'ordre du jour, puis quasiment pas de faute de frappe dans les codes sources donnés en exemple, et ca, ca compte enormément !!!
CGi est en train de rédiger sa série de tutoriels aussi:
http://chgi.developpez.com/windows/
J'utilise DEV C++LES deux premiers chapitre du tutorial API Windows en C se passent bien, mais pour le 3 (Les commandes et notifiocations) la compilation compilation plante sur GetStockObject, avec le message d'erreur:
[linker error] undefined refernce to GetStockObject@4
Merci de m'aider
http://msdn.microsoft.com/library/en...vcons_1t10.asp
il faut lier avec -lgdi32 dans ton cas.Requirements
Windows NT/2000/XP/Vista: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Wingdi.h; include Windows.h.
Library: Use Gdi32.lib
Merci à Aurélien.
Le lien avec lgdi 32 a fonctionné. Mais maintenant j'ai un probleme identique au chapitre 4(Les boites de dialogues communes). C'a plante sur
"GetOpenFileName".
Ai-je oublié de rajouté une bibliotheque?
Bonjour,
Bravo pour le travail !
Où peut-on trouver la liste les API Windows 2000 avec leurs définitions ?
Merci.
Je code en dev-C++. Chapitre 15 Afficher des images, l'execution me donne une fenetre vide, sans l'image attendue.J'ai placé son fichier ("image.bmp") dans le repertoire Dev-Cpp. est-ce le bon emplacement?
A mon avis, pour afficher des images, il faut les mettre dans le même répertoire que le .exe.
Salut
Moi je voulais une API permettant de recupérer les données sur un formulaire(fenêtre) et les convertir dans dans différents formats (nombre, text, date)
bonjour à ts,
alors est- ce quelqu'un sait comment on peut faire pour suspendre, arrêter et relancer un processus par un autre processus sous windows en utilisant Visual C++.
J'ignore si c'est seulement possible.
Non seulement il faudrait suspendre tous ses threads et lire toute sa mémoire pour pouvoir l'enregistrer, mais il faudrait en plus lire le contexte de chaque thread, pour enregistrer également.
Et je ne parle même pas de la reprise, ou il faudra trouver le moyen de recharger le contexte en question pour que chaque thread parte de l'endroit où il a été suspendu...
Je dirais qu'il n'est pas réaliste de faire ça sur un programme arbitraire. Je pense qu'on peut faire ça sur des programmes spécialement développés pour répondre à des commandes du genre "sauvegarde tout et quitte" et "recharge directement ceci au lancement"...
Edit: Mauvais thread... splifo a squatté celui-ci au lieu de répondre dans le sien!
Tu parles comme un clone de sylvain69.
Indique des références précises sur comment c'est fait, sinon tu dis du vide.
Parce qu'il ne se risque pas à dire des bêtises contrairement à d'autre..
Ou est le rapport? Charles Petzold est un expert en programmation graphique sous windows pas en programmation système.
Le seul moyen de faire ça proprement: il faut que le processus qui suspend/réveille l'autre processus soit un débogueur (voir WaitForDebugEvent() et ContinueDebugEvent() ).
Autrement on peut tenter ce genre d'aventure :
Ce code fonctionne mais présente plusieurs risques, rien n'empêche la création ou destruction de thread pendant la suspension avec tout ce qui en découle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 VOID SuspendProcess(DWORD dwProcessID, BOOL fSuspend) { // retourne la liste des threads HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, dwProcessID); if (hSnapshot != INVALID_HANDLE_VALUE) { // on parcourt la liste. THREADENTRY32 te = { sizeof(te) }; BOOL fOk = Thread32First(hSnapshot, &te); for (; fOk; fOk = Thread32Next(hSnapshot, &te)) { // le thread fait il parti du processus if (te.th32OwnerProcessID == dwProcessID) { // conversion de l'ID du thread en handle. HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, te.th32ThreadID); if (hThread != NULL) { // suspension ou reprise if (fSuspend) SuspendThread(hThread); else ResumeThread(hThread); } CloseHandle(hThread); } } CloseHandle(hSnapshot); } }
re,
je pense k je me suis mal exprimé, en fait on n'a pas besoin d'enregistrer le process.
on veut juste le mettre en pause et le relancer à partir d'un autre processus et comme les API de windows c'est trés large je me demandais si kelkun connaîtra une ki pourrai m'aider à réaliser un tel programme et merci
re et ouuuups,
j'avais pas vu la 2ème page.j précise k je porte des lunettes
et merci je vais creuser de c côté
Je te remercie . C'est vraiment trés interessant. Mais je me demmande si tu es d'accord de nous présenter un tel sujet mais avec delphi.
Partager