Bonjour,
Pour les besoins personnel d'un projet, je souhaiterai pouvoir récupérer la taille totale de la mémoire vidéo de ma carte graphique sous Windows en C++. Comment puis-je m'y prendre ? Merci d'avance pour votre aide.
Nico.
Bonjour,
Pour les besoins personnel d'un projet, je souhaiterai pouvoir récupérer la taille totale de la mémoire vidéo de ma carte graphique sous Windows en C++. Comment puis-je m'y prendre ? Merci d'avance pour votre aide.
Nico.
-> GetAvailableVidMem() dans l'interface DirectDraw.
Il y a certainement d'autres façons de le faire mais personnellement je ne connais que celle-là.
Après trouvé un morceau de code sur le net, j'ai compilé et exécuté mon programme sous Code::Blocks. Par contre, je rencontre un problème : l'exécutable plante lorsque je le lance et j'obtiens la traditionnelle popup windows XP me proposant d'envoyer l'erreur à Microsoft. En analysant plus finement le problème, je me suis aperçu que le plantage est provoqué par l'appel à la fonction 'QueryInterface'. Voici le code du programme :
Pour information, je linke le programme avec les bibliothèques ddraw et dxguid. Savez-vous pourquoi le programme plante et comment je peux éviter cela ?
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#include <cstdio> #include <windows.h> #include <ddraw.h> int main() { DWORD dwTotal, dwFree; DDSCAPS2 ddscaps; ddscaps.dwCaps = DDSCAPS_VIDEOMEMORY; LPDIRECTDRAW7 lpDD; lpDD->QueryInterface(IID_IDirectDraw7, (LPVOID *)&lpDD); }
C'est pourtant simple: le pointeur lpDD n'est pas initialisé avant utilisation dans ton code !!
Essaie plutôt ça, ça devrait faire moins mal:
Code : Sélectionner tout - Visualiser dans une fenêtre à part DirectDrawCreateEx(0, (LPVOID*) &lpDD), IID_IDirectDraw7, 0);
Bon j'ai rajouté le bout de code pour l'initialisation du pointeur mais j'ai un autre problème. Lorsque je compile le code, j'obtiens cette erreur-là :
Pourtant j'ai bien inclu le fichier 'ddraw.h' et j'ai linké avec la bibliothèque 'ddraw.lib' ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 undefined reference to `DirectDrawCreateEx@16'
Une erreur de linkage donc.Envoyé par nicolas66
Quel compilo et quel SDK utilises-tu ?
Partager