Vincent Burel wrote:
> et Concrètement c'est de la
> programmation objet, architecture objet...
Heu, j'ai pas cru voir des surcharges,
du polymorphisme,
de l'héritage, etc.
Vincent Burel wrote:
> et Concrètement c'est de la
> programmation objet, architecture objet...
Heu, j'ai pas cru voir des surcharges,
du polymorphisme,
de l'héritage, etc.
Vincent Burel wrote:
> et Concrètement c'est de la
> programmation objet, architecture objet...
Heu, j'ai pas cru voir des surcharges,
du polymorphisme,
de l'héritage, etc.
Petit apperçu de mon brouillon d'article :
- les fenêtres se parlent via des messages, or c'est ce que le
théorie objet définit (dialogue entre objets via messages)
contrairement aux langages genre C++ où les objets s'appelent
directement - les fenêtres c'est des objets, et on a bien des classes
d'objets qui sont les classes de fenêtres
- on manipule les objets via des handle (design pattern bridge) : ils
permettent l'encapsulation des données et donc l'abstraction, ce qui
est la base de la conception objet.
- WM_CREATE et WM_DESTROY peuvent être vus commes les constructeurs /
destructeurs des objets fenêtres
- les fenêtres supportent l'héritage (via le subclassing) dans un but
de spécialisation (BUTTON, EDIT, ...). Pour autant ce sont toujours
des fenêtres (relation EST UN => qui caractérise l'héritage)
- on peut imaginer l'héritage multiple en chainant 2 WndProc, mais
j'ai jamais croisé cette utilisation
- j'hésite à considérer le super-classing comme un héritage privé =>
composition
A partir de là accrochez vous :
- la WndProc sert à redéfinir des messages de la classe de base
(matérialisée par DefWindowProc) ainsi qu'a ajouter de nouveau
messages propres à la classe. Du fait qu'elle supplante le traitement
par défaut des messages de fenêtre, et ce alors que via son HWND on
la considère comme une fenêtre de base, on peut considérer que la
WndProc agit comme la vtable d'une classe C++ et donc que les
messages déclenchent l'appel de fonctions virtuelles via la WndProc...
- j'hésite à caser la méta-programmation avec RegisterClass qui
permet de créer des classes de fenêtres...
Voilà en gros ce que donnera mon article (si je le finis)... Votre
opinion est la bienvenue :-)
Petit apperçu de mon brouillon d'article :
- les fenêtres se parlent via des messages, or c'est ce que le
théorie objet définit (dialogue entre objets via messages)
contrairement aux langages genre C++ où les objets s'appelent
directement - les fenêtres c'est des objets, et on a bien des classes
d'objets qui sont les classes de fenêtres
- on manipule les objets via des handle (design pattern bridge) : ils
permettent l'encapsulation des données et donc l'abstraction, ce qui
est la base de la conception objet.
- WM_CREATE et WM_DESTROY peuvent être vus commes les constructeurs /
destructeurs des objets fenêtres
- les fenêtres supportent l'héritage (via le subclassing) dans un but
de spécialisation (BUTTON, EDIT, ...). Pour autant ce sont toujours
des fenêtres (relation EST UN => qui caractérise l'héritage)
- on peut imaginer l'héritage multiple en chainant 2 WndProc, mais
j'ai jamais croisé cette utilisation
- j'hésite à considérer le super-classing comme un héritage privé =>
composition
A partir de là accrochez vous :
- la WndProc sert à redéfinir des messages de la classe de base
(matérialisée par DefWindowProc) ainsi qu'a ajouter de nouveau
messages propres à la classe. Du fait qu'elle supplante le traitement
par défaut des messages de fenêtre, et ce alors que via son HWND on
la considère comme une fenêtre de base, on peut considérer que la
WndProc agit comme la vtable d'une classe C++ et donc que les
messages déclenchent l'appel de fonctions virtuelles via la WndProc...
- j'hésite à caser la méta-programmation avec RegisterClass qui
permet de créer des classes de fenêtres...
Voilà en gros ce que donnera mon article (si je le finis)... Votre
opinion est la bienvenue :-)
Petit apperçu de mon brouillon d'article :
- les fenêtres se parlent via des messages, or c'est ce que le
théorie objet définit (dialogue entre objets via messages)
contrairement aux langages genre C++ où les objets s'appelent
directement - les fenêtres c'est des objets, et on a bien des classes
d'objets qui sont les classes de fenêtres
- on manipule les objets via des handle (design pattern bridge) : ils
permettent l'encapsulation des données et donc l'abstraction, ce qui
est la base de la conception objet.
- WM_CREATE et WM_DESTROY peuvent être vus commes les constructeurs /
destructeurs des objets fenêtres
- les fenêtres supportent l'héritage (via le subclassing) dans un but
de spécialisation (BUTTON, EDIT, ...). Pour autant ce sont toujours
des fenêtres (relation EST UN => qui caractérise l'héritage)
- on peut imaginer l'héritage multiple en chainant 2 WndProc, mais
j'ai jamais croisé cette utilisation
- j'hésite à considérer le super-classing comme un héritage privé =>
composition
A partir de là accrochez vous :
- la WndProc sert à redéfinir des messages de la classe de base
(matérialisée par DefWindowProc) ainsi qu'a ajouter de nouveau
messages propres à la classe. Du fait qu'elle supplante le traitement
par défaut des messages de fenêtre, et ce alors que via son HWND on
la considère comme une fenêtre de base, on peut considérer que la
WndProc agit comme la vtable d'une classe C++ et donc que les
messages déclenchent l'appel de fonctions virtuelles via la WndProc...
- j'hésite à caser la méta-programmation avec RegisterClass qui
permet de créer des classes de fenêtres...
Voilà en gros ce que donnera mon article (si je le finis)... Votre
opinion est la bienvenue :-)
Pour le tordu je faisais référence à la fin de mon
autre post : vtable, Delegate, ...
Pour le tordu je faisais référence à la fin de mon
autre post : vtable, Delegate, ...
Pour le tordu je faisais référence à la fin de mon
autre post : vtable, Delegate, ...
> Par contre, le point passionnant dans cette histoire
(à mon humble avis) c'est PostMessage. Tu peux faire
de l'objet avec invocation asynchrone... Ca conduit
à une autre manière de programmer (et à une nouvelle
manière de faire des programmes buggés :-) )
> Par contre, le point passionnant dans cette histoire
(à mon humble avis) c'est PostMessage. Tu peux faire
de l'objet avec invocation asynchrone... Ca conduit
à une autre manière de programmer (et à une nouvelle
manière de faire des programmes buggés :-) )
> Par contre, le point passionnant dans cette histoire
(à mon humble avis) c'est PostMessage. Tu peux faire
de l'objet avec invocation asynchrone... Ca conduit
à une autre manière de programmer (et à une nouvelle
manière de faire des programmes buggés :-) )
> Windows utilise les messages à cause qu'il est préemptif, je doute qu'il y
ait là grand chose à voir avec les objets...
- on manipule les objets via des handle (design pattern bridge) : ils
permettent l'encapsulation des données et donc l'abstraction, ce qui
est la base de la conception objet.
C'est un peu tiré par les cheveux ça quand même non ?
- WM_CREATE et WM_DESTROY peuvent être vus commes les constructeurs /
destructeurs des objets fenêtres
Oui mais, est ce que ce modèle est présent partout ? As-tu toujours cette
"paire" de messages ?
- les fenêtres supportent l'héritage (via le subclassing) dans un but
de spécialisation (BUTTON, EDIT, ...). Pour autant ce sont toujours
des fenêtres (relation EST UN => qui caractérise l'héritage)
Houla. Toujours tiré par les tifs.
- on peut imaginer l'héritage multiple en chainant 2 WndProc, mais
j'ai jamais croisé cette utilisation
Détaille.
A partir de là accrochez vous :
Matt Pietrek, Jeffrey Richter, Andrew Schulmann et Ralph Lipe, priez pour
lui, il ne sait pas ce qu'il fait :-).
- j'hésite à caser la méta-programmation avec RegisterClass qui
permet de créer des classes de fenêtres...
Oui. Hésite. Ou alors, tant que tu y es, parle de l'auto-modification de
code via writeprocessmemory(), là t'aura ton full polymorphisme.
Voilà en gros ce que donnera mon article (si je le finis)... Votre
opinion est la bienvenue :-)
Mon opinion est qu'à force de tirer sur les cheveux on fini chauve...
> Windows utilise les messages à cause qu'il est préemptif, je doute qu'il y
ait là grand chose à voir avec les objets...
- on manipule les objets via des handle (design pattern bridge) : ils
permettent l'encapsulation des données et donc l'abstraction, ce qui
est la base de la conception objet.
C'est un peu tiré par les cheveux ça quand même non ?
- WM_CREATE et WM_DESTROY peuvent être vus commes les constructeurs /
destructeurs des objets fenêtres
Oui mais, est ce que ce modèle est présent partout ? As-tu toujours cette
"paire" de messages ?
- les fenêtres supportent l'héritage (via le subclassing) dans un but
de spécialisation (BUTTON, EDIT, ...). Pour autant ce sont toujours
des fenêtres (relation EST UN => qui caractérise l'héritage)
Houla. Toujours tiré par les tifs.
- on peut imaginer l'héritage multiple en chainant 2 WndProc, mais
j'ai jamais croisé cette utilisation
Détaille.
A partir de là accrochez vous :
Matt Pietrek, Jeffrey Richter, Andrew Schulmann et Ralph Lipe, priez pour
lui, il ne sait pas ce qu'il fait :-).
- j'hésite à caser la méta-programmation avec RegisterClass qui
permet de créer des classes de fenêtres...
Oui. Hésite. Ou alors, tant que tu y es, parle de l'auto-modification de
code via writeprocessmemory(), là t'aura ton full polymorphisme.
Voilà en gros ce que donnera mon article (si je le finis)... Votre
opinion est la bienvenue :-)
Mon opinion est qu'à force de tirer sur les cheveux on fini chauve...
> Windows utilise les messages à cause qu'il est préemptif, je doute qu'il y
ait là grand chose à voir avec les objets...
- on manipule les objets via des handle (design pattern bridge) : ils
permettent l'encapsulation des données et donc l'abstraction, ce qui
est la base de la conception objet.
C'est un peu tiré par les cheveux ça quand même non ?
- WM_CREATE et WM_DESTROY peuvent être vus commes les constructeurs /
destructeurs des objets fenêtres
Oui mais, est ce que ce modèle est présent partout ? As-tu toujours cette
"paire" de messages ?
- les fenêtres supportent l'héritage (via le subclassing) dans un but
de spécialisation (BUTTON, EDIT, ...). Pour autant ce sont toujours
des fenêtres (relation EST UN => qui caractérise l'héritage)
Houla. Toujours tiré par les tifs.
- on peut imaginer l'héritage multiple en chainant 2 WndProc, mais
j'ai jamais croisé cette utilisation
Détaille.
A partir de là accrochez vous :
Matt Pietrek, Jeffrey Richter, Andrew Schulmann et Ralph Lipe, priez pour
lui, il ne sait pas ce qu'il fait :-).
- j'hésite à caser la méta-programmation avec RegisterClass qui
permet de créer des classes de fenêtres...
Oui. Hésite. Ou alors, tant que tu y es, parle de l'auto-modification de
code via writeprocessmemory(), là t'aura ton full polymorphisme.
Voilà en gros ce que donnera mon article (si je le finis)... Votre
opinion est la bienvenue :-)
Mon opinion est qu'à force de tirer sur les cheveux on fini chauve...
Après, voir de l'OO dans le fait qu'il y a une API CloseHandle,
je trouve ça sérieusement tiré par les cheveux.
Après, voir de l'OO dans le fait qu'il y a une API CloseHandle,
je trouve ça sérieusement tiré par les cheveux.
Après, voir de l'OO dans le fait qu'il y a une API CloseHandle,
je trouve ça sérieusement tiré par les cheveux.
> Sinon, pourquoi est-ce que vous tenez tous absolument à ne prendre vos
exemple que dans le système de fenêtrage? Ce n'est qu'une toute petite
partie de l'API Win32!
> Sinon, pourquoi est-ce que vous tenez tous absolument à ne prendre vos
exemple que dans le système de fenêtrage? Ce n'est qu'une toute petite
partie de l'API Win32!
> Sinon, pourquoi est-ce que vous tenez tous absolument à ne prendre vos
exemple que dans le système de fenêtrage? Ce n'est qu'une toute petite
partie de l'API Win32!
Sinon, pourquoi est-ce que vous tenez tous absolument à ne prendre vos
exemple que dans le système de fenêtrage? Ce n'est qu'une toute petite
partie de l'API Win32!
Arnaud
Sinon, pourquoi est-ce que vous tenez tous absolument à ne prendre vos
exemple que dans le système de fenêtrage? Ce n'est qu'une toute petite
partie de l'API Win32!
Arnaud
Sinon, pourquoi est-ce que vous tenez tous absolument à ne prendre vos
exemple que dans le système de fenêtrage? Ce n'est qu'une toute petite
partie de l'API Win32!
Arnaud
> En utilisant les sockets de win32, je n est pas remarqué d utilisation
objet des fonctions, mais bien des appels avec pointeurs ou handle à la
mode C. On peut parfaitement faire des liens entre outils objet (passage
d objet, constructeur, masquage de données ...) avec du code non objet
utilisant ces concepts , mais cela devient à la charge de programmeur et
non une facilité automatique.
> En utilisant les sockets de win32, je n est pas remarqué d utilisation
objet des fonctions, mais bien des appels avec pointeurs ou handle à la
mode C. On peut parfaitement faire des liens entre outils objet (passage
d objet, constructeur, masquage de données ...) avec du code non objet
utilisant ces concepts , mais cela devient à la charge de programmeur et
non une facilité automatique.
> En utilisant les sockets de win32, je n est pas remarqué d utilisation
objet des fonctions, mais bien des appels avec pointeurs ou handle à la
mode C. On peut parfaitement faire des liens entre outils objet (passage
d objet, constructeur, masquage de données ...) avec du code non objet
utilisant ces concepts , mais cela devient à la charge de programmeur et
non une facilité automatique.
> On n'est pas tordu du tout, c'est assez évident si tu veux
bien examiner les APIs en question et l'ensemble qu'elles
forment. Il faut quand même remarquer que cette mécanique
est en place depuis plus d'une quinzaine d'année au moins,
ne t'imagines pas avoir fait là une grande découverte :-)
> On n'est pas tordu du tout, c'est assez évident si tu veux
bien examiner les APIs en question et l'ensemble qu'elles
forment. Il faut quand même remarquer que cette mécanique
est en place depuis plus d'une quinzaine d'année au moins,
ne t'imagines pas avoir fait là une grande découverte :-)
> On n'est pas tordu du tout, c'est assez évident si tu veux
bien examiner les APIs en question et l'ensemble qu'elles
forment. Il faut quand même remarquer que cette mécanique
est en place depuis plus d'une quinzaine d'année au moins,
ne t'imagines pas avoir fait là une grande découverte :-)