[Delphi] pb avec directx et createfont

pb avec directx et createfont [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 18-06-2003 à 09:39:21    

Dans la boucle de render de mon appli, j'ai ce bout de code pour afficher du texte par dessus ma 3d :


var
 my_hfont: HFONT;
 m_pFont: ID3DXFONT;
begin
 my_hfont := CreateFont(25, 0, 0, 0, 0, 0, 0, 0, ANSI_CHARSET, 0, 0, 0, 0, 'verdana');
 D3DXCreateFont(m_pD3DDevice, my_hFont, m_pFont);
 ...
 m_pFont._Begin();


et en gros qques (3) minutes après que l'appli soit démarée, j'ai un violent access violation (adress read is 00000000) au niveau du m_pFont._Begin() qui semble indique que le pointeur m_pFont est nul ce qui n'est pas vraiment normal.
 
donc si quelqu'un à une piste...
 
merci !


Message édité par dweis le 18-06-2003 à 09:40:08
Reply

Marsh Posté le 18-06-2003 à 09:39:21   

Reply

Marsh Posté le 18-06-2003 à 10:12:25    

y a pas une valeur de retour à la fonction, qui pourrait te donner un code d'erreur disant pourquoi il a mis 0 dans ton pointeur ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 18-06-2003 à 11:27:33    

pour l'instant le pb semble avoir été résolu en remplacant my_hfont: HFONT; par my_hfont: HWND; et en ajoutant DeleteObject(my_hfont)
 
enfin je suis pas super convaincu par ce que j'ai fait

Reply

Marsh Posté le 18-06-2003 à 11:29:09    

à mon avis c'est surtout le DeleteObject qui a son importance... si tu libères jamais les trucs que tu crées, à un moment Windows il en peut plus :o


Message édité par antp le 18-06-2003 à 11:29:22

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 18-06-2003 à 11:31:04    

je sais bien mais le problème c'est que le deleteobject ne passait pas avant (avec my_hfont: HFONT) ! ;(

Reply

Marsh Posté le 26-05-2008 à 00:55:06    

Salut bon moi je pense que ça viens plutôt du fait que t'ai
my_hfont: HFONT;  
donc tu déclares la variable hfont, puis tu l'initialise, mais
D3DXCreateFont(m_pD3DDevice, my_hFont, m_pFont);  
tu utilises hFont, je pense que le 'F' t'as été fatal.
++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed