Ayant un probleme avec une fonction de CALLBACK et pour ne pas la citer
WndProc, j'ai chercher à acceder directement à la memoire, sans y parvenir
( sous dos nous avons la fameuse peekb ) mais sous win32 je n'y parvient
pas.
_comment acceder directement a la memoire virtuelle alloué au processus de
mon prog ?
_Et/ou acceder directement à la memoire virtuelle general ? ( genre dump)
et eventuellement, si un puriste avait trouvé la solution pour faire du vrai
C++ avec <Windows.h> et notament placer WndProc dans une classe. En tirer
son adresse sur un pointeur type WNDPROC, la ce serais vraiment NOEL pour
moi. ( j'ai le sentiment que les fonctions appartenant à un classe ne sont
pas constitué de la meme facon que les fonctions C: pointeur "this" peut
etre ?)
Ce probleme est récurant lorsque l'on se lance dans la programmation
windows.
DirectX par exemple ou APIWindows ne sont pas adapté au C++ a cause notament
de ces callback.
Votre avis ?
Cordialement
Heinquoi
- Utilisation du champ USERDATA asocié à chaque fenêtre pour y stocker un pointeur. Je ne connais pas de framework qui utilises cela, mais c'est une possibilité (avec pas mal de limitations néanmoins - entre autres que ce champ n'est plus disponible pour autre chose et que les perfs sont assez décevantes).
En quoi les perfs sont altérées ? J'avais fait ça pour convertir une appli MFC en Win32 et aucun ralentissement flagrant. Y'a qu'un Getwindowlong a chaque message supplementaire.
-- « Always look at the bright side of the life... »
Bonjour,
Arnaud Debaene a écrit :
- Utilisation du champ USERDATA asocié à chaque fenêtre pour y stocker
un pointeur. Je ne connais pas de framework qui utilises cela, mais
c'est une possibilité (avec pas mal de limitations néanmoins - entre
autres que ce champ n'est plus disponible pour autre chose et que les
perfs sont assez décevantes).
En quoi les perfs sont altérées ?
J'avais fait ça pour convertir une appli MFC en Win32 et aucun
ralentissement flagrant. Y'a qu'un Getwindowlong a chaque message
supplementaire.
--
« Always look at the bright side of the life... »
- Utilisation du champ USERDATA asocié à chaque fenêtre pour y stocker un pointeur. Je ne connais pas de framework qui utilises cela, mais c'est une possibilité (avec pas mal de limitations néanmoins - entre autres que ce champ n'est plus disponible pour autre chose et que les perfs sont assez décevantes).
En quoi les perfs sont altérées ? J'avais fait ça pour convertir une appli MFC en Win32 et aucun ralentissement flagrant. Y'a qu'un Getwindowlong a chaque message supplementaire.
-- « Always look at the bright side of the life... »
Vincent Burel
"AMcD®" wrote in message news:4080ad2e$0$17514$
C'est bon, ça va, n'en parlons plus.
sur et certains ! ? :-)
PS : Et s'il me cherche encore, je reviens poster régulièrement ici ;o) !
ha ha ! ne tente pas le diable ... !
VB
"AMcD®" <arnold.mcdonald@free.fr> wrote in message
news:4080ad2e$0$17514$626a14ce@news.free.fr...
C'est bon, ça va, n'en parlons plus.
sur et certains ! ? :-)
PS : Et s'il me cherche encore, je reviens poster régulièrement ici ;o) !
Tiens qui voilà :o) !? Alors, ça boume ? Quoi de neuf ? Ça fait 3-4 jours que je suis réabonné ici, c'est pas nerveux-nerveux...
:-) c'est vrai que ca manque de débat passionnés :-)
VB
Dominique Vaufreydaz
Salut,
:-) c'est vrai que ca manque de débat passionnés :-)
Je préfère utilise FILE plutot que CFile, et "c'est mon choix". "Ca se discute" mais c'est comme ca. Allez hop, un débat passionnés de lancé ! Euh, un troll ;-P
BTW, salut Arnold ! ;-D
Doms. -- Impose ta chance, serre ton bonheur et va vers ton risque. A te regarder, ils s'habitueront. René Char, Les Matinaux. ---- http://Dominique.Vaufreydaz.free.fr/ http://TitchKaRa.free.fr/ http://logiciels.ntfaqfr.com/
Salut,
:-) c'est vrai que ca manque de débat passionnés :-)
Je préfère utilise FILE plutot que CFile, et "c'est mon choix".
"Ca se discute" mais c'est comme ca.
Allez hop, un débat passionnés de lancé ! Euh, un troll ;-P
BTW, salut Arnold ! ;-D
Doms.
--
Impose ta chance, serre ton bonheur et va vers ton risque.
A te regarder, ils s'habitueront.
René Char, Les Matinaux.
----
http://Dominique.Vaufreydaz.free.fr/
http://TitchKaRa.free.fr/
http://logiciels.ntfaqfr.com/
:-) c'est vrai que ca manque de débat passionnés :-)
Je préfère utilise FILE plutot que CFile, et "c'est mon choix". "Ca se discute" mais c'est comme ca. Allez hop, un débat passionnés de lancé ! Euh, un troll ;-P
BTW, salut Arnold ! ;-D
Doms. -- Impose ta chance, serre ton bonheur et va vers ton risque. A te regarder, ils s'habitueront. René Char, Les Matinaux. ---- http://Dominique.Vaufreydaz.free.fr/ http://TitchKaRa.free.fr/ http://logiciels.ntfaqfr.com/
AMcD®
Dominique Vaufreydaz wrote:
Salut,
c'est vrai que ca manque de débat passionnés
C'est pas ce que je voulais dire, . Je raisonnais en terme de posts. C'est pas la marée haute...
Je préfère utilise FILE plutot que CFile, et "c'est mon choix". "Ca se discute" mais c'est comme ca. Allez hop, un débat passionnés de lancé ! Euh, un troll ;-P
Tsss, c'est du troll d'amateur ça . Non, non, ressort les bons classiques "Code C++ non optimisé vs ASM", ou "MFC vs API", là on va rire.
BTW, salut Arnold ! ;-D
Héhé, je vois que c'est un peu toujours les mêmes ici. Manque plus que GG et Tene tiens.
AMcD®
http://arnold.mcdonald.free.fr/
Dominique Vaufreydaz wrote:
Salut,
c'est vrai que ca manque de débat passionnés
C'est pas ce que je voulais dire, . Je raisonnais en terme de posts.
C'est pas la marée haute...
Je préfère utilise FILE plutot que CFile, et "c'est mon choix".
"Ca se discute" mais c'est comme ca.
Allez hop, un débat passionnés de lancé ! Euh, un troll ;-P
Tsss, c'est du troll d'amateur ça . Non, non, ressort les bons classiques
"Code C++ non optimisé vs ASM", ou "MFC vs API", là on va rire.
BTW, salut Arnold ! ;-D
Héhé, je vois que c'est un peu toujours les mêmes ici. Manque plus que GG et
Tene tiens.
C'est pas ce que je voulais dire, . Je raisonnais en terme de posts. C'est pas la marée haute...
Je préfère utilise FILE plutot que CFile, et "c'est mon choix". "Ca se discute" mais c'est comme ca. Allez hop, un débat passionnés de lancé ! Euh, un troll ;-P
Tsss, c'est du troll d'amateur ça . Non, non, ressort les bons classiques "Code C++ non optimisé vs ASM", ou "MFC vs API", là on va rire.
BTW, salut Arnold ! ;-D
Héhé, je vois que c'est un peu toujours les mêmes ici. Manque plus que GG et Tene tiens.
AMcD®
http://arnold.mcdonald.free.fr/
Vincent Burel
"AMcD®" wrote in message news:4085ce08$0$22867$
Dominique Vaufreydaz wrote: > Salut, > >> c'est vrai que ca manque de débat passionnés
C'est pas ce que je voulais dire,
c'est jamais ce que tu voulais dire :-)
. Je raisonnais en terme de posts. C'est pas la marée haute...
ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés et que sur les archives de ce newsgroup (via google), on trouve a peu près toujours une réponse à la question qu'on se pose. il faut le dire : beaucoup grace à l'encyclopédie ASTOR :-)
Maintenant, ben il faut inventer des problèmes pour créer de la discussion... :-)
VB
"AMcD®" <arnold.mcdonald@free.fr> wrote in message
news:4085ce08$0$22867$626a14ce@news.free.fr...
Dominique Vaufreydaz wrote:
> Salut,
>
>> c'est vrai que ca manque de débat passionnés
C'est pas ce que je voulais dire,
c'est jamais ce que tu voulais dire :-)
. Je raisonnais en terme de posts.
C'est pas la marée haute...
ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés et
que sur les archives de ce newsgroup (via google), on trouve a peu près
toujours une réponse à la question qu'on se pose. il faut le dire : beaucoup
grace à l'encyclopédie ASTOR :-)
Maintenant, ben il faut inventer des problèmes pour créer de la
discussion... :-)
Dominique Vaufreydaz wrote: > Salut, > >> c'est vrai que ca manque de débat passionnés
C'est pas ce que je voulais dire,
c'est jamais ce que tu voulais dire :-)
. Je raisonnais en terme de posts. C'est pas la marée haute...
ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés et que sur les archives de ce newsgroup (via google), on trouve a peu près toujours une réponse à la question qu'on se pose. il faut le dire : beaucoup grace à l'encyclopédie ASTOR :-)
Maintenant, ben il faut inventer des problèmes pour créer de la discussion... :-)
VB
Ambassadeur Kosh
> ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés et que sur les archives de ce newsgroup (via google), on trouve a peu près toujours une réponse à la question qu'on se pose. il faut le dire :
beaucoup
grace à l'encyclopédie ASTOR :-) Maintenant, ben il faut inventer des problèmes pour créer de la discussion... :-)
ça fait longtemps qu'on avait pas vu de post de toi egallement. de retours parmi nous ?
> ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés et
que sur les archives de ce newsgroup (via google), on trouve a peu près
toujours une réponse à la question qu'on se pose. il faut le dire :
beaucoup
grace à l'encyclopédie ASTOR :-)
Maintenant, ben il faut inventer des problèmes pour créer de la
discussion... :-)
ça fait longtemps qu'on avait pas vu de post de toi egallement.
de retours parmi nous ?
> ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés et que sur les archives de ce newsgroup (via google), on trouve a peu près toujours une réponse à la question qu'on se pose. il faut le dire :
beaucoup
grace à l'encyclopédie ASTOR :-) Maintenant, ben il faut inventer des problèmes pour créer de la discussion... :-)
ça fait longtemps qu'on avait pas vu de post de toi egallement. de retours parmi nous ?
Vincent Burel
"Ambassadeur Kosh" wrote in message news:Q2rhc.39364$
> ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés
et
> que sur les archives de ce newsgroup (via google), on trouve a peu près > toujours une réponse à la question qu'on se pose. il faut le dire : beaucoup > grace à l'encyclopédie ASTOR :-) > Maintenant, ben il faut inventer des problèmes pour créer de la > discussion... :-)
ça fait longtemps qu'on avait pas vu de post de toi egallement. de retours parmi nous ?
en dilletente alors... place aux jeunes ! :-)
VB
"Ambassadeur Kosh" <kosh.naranek@babylon5.net> wrote in message
news:Q2rhc.39364$zm5.17765@nntpserver.swip.net...
> ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés
et
> que sur les archives de ce newsgroup (via google), on trouve a peu près
> toujours une réponse à la question qu'on se pose. il faut le dire :
beaucoup
> grace à l'encyclopédie ASTOR :-)
> Maintenant, ben il faut inventer des problèmes pour créer de la
> discussion... :-)
ça fait longtemps qu'on avait pas vu de post de toi egallement.
de retours parmi nous ?
"Ambassadeur Kosh" wrote in message news:Q2rhc.39364$
> ha ! oui... il faut dire qu'un peu tous les sujets on déjà été abordés
et
> que sur les archives de ce newsgroup (via google), on trouve a peu près > toujours une réponse à la question qu'on se pose. il faut le dire : beaucoup > grace à l'encyclopédie ASTOR :-) > Maintenant, ben il faut inventer des problèmes pour créer de la > discussion... :-)
ça fait longtemps qu'on avait pas vu de post de toi egallement. de retours parmi nous ?
en dilletente alors... place aux jeunes ! :-)
VB
Aurélien REGAT-BARREL
> Une solution, ça serait pas de stocker le CMaClasse* dans les windows words et de coder une windowproc qui fait un appel systématique à une windowproc d'instance ?
Oui, mais faut être prudent avec WM_CREATE (pas de ptr associé encore). Je crois que c'est OWL qui utilise une autre manière : compiler dynamiquement une fonction de ce style :
Ils allouent un buffer exécutable, y placent les opcodes assembleurs qu'il faut en modifiant l'adresse de l'appel. Cette routine compilée dynamiquement est donnée comme nouvelle callback de la fenêtre crée via un subclassing SetWindowLong( GWL_WNDPROC, CallMyInstanceXXX ); C'est osé hein ?
> Une solution, ça serait pas de stocker le CMaClasse*
dans les windows words et de coder une windowproc qui
fait un appel systématique à une windowproc d'instance ?
Oui, mais faut être prudent avec WM_CREATE (pas de ptr associé encore).
Je crois que c'est OWL qui utilise une autre manière : compiler
dynamiquement une fonction de ce style :
Ils allouent un buffer exécutable, y placent les opcodes assembleurs qu'il
faut en modifiant l'adresse de l'appel. Cette routine compilée dynamiquement
est donnée comme nouvelle callback de la fenêtre crée via un subclassing
SetWindowLong( GWL_WNDPROC, CallMyInstanceXXX );
C'est osé hein ?
> Une solution, ça serait pas de stocker le CMaClasse* dans les windows words et de coder une windowproc qui fait un appel systématique à une windowproc d'instance ?
Oui, mais faut être prudent avec WM_CREATE (pas de ptr associé encore). Je crois que c'est OWL qui utilise une autre manière : compiler dynamiquement une fonction de ce style :
Ils allouent un buffer exécutable, y placent les opcodes assembleurs qu'il faut en modifiant l'adresse de l'appel. Cette routine compilée dynamiquement est donnée comme nouvelle callback de la fenêtre crée via un subclassing SetWindowLong( GWL_WNDPROC, CallMyInstanceXXX ); C'est osé hein ?