Comment dois-je déclarer avant de la POIGNÉE? (Win32)
Comment dois-je déclarer avant HANDLE
? Je ne veux pas inclure tous windows.h
dans cet en-tête.
N'est-ce pas
POIGNÉE n'est pas un
en fait, c'est un index dans certains tableaux dans l'espace du noyau. Et de toute façon, vous n'avez pas besoin d'effectuer une arithmétique sur elle.
Est-ce critique pour les performances du code? Ou serait-emballage
Pas toujours. Des choses comme les poignées de fenêtre ne sont pas dans le noyau. @James: Ce n'est pas exactement critique pour les performances, mais il semble un gaspillage d'inclure cette énorme tête juste pour avoir la POIGNÉE exposés. Je pensais que c'était juste un
#define HANDLE int
pas assez?POIGNÉE n'est pas un
int
. En particulier, je crois que c'est la même largeur qu'un pointeur.en fait, c'est un index dans certains tableaux dans l'espace du noyau. Et de toute façon, vous n'avez pas besoin d'effectuer une arithmétique sur elle.
Est-ce critique pour les performances du code? Ou serait-emballage
HANDLE
à l'aide de pimpl être une option? Parce que c'est un ensemble beaucoup plus propre que d'essayer de les déclarer avant opaque type de l'API de Windows.Pas toujours. Des choses comme les poignées de fenêtre ne sont pas dans le noyau. @James: Ce n'est pas exactement critique pour les performances, mais il semble un gaspillage d'inclure cette énorme tête juste pour avoir la POIGNÉE exposés. Je pensais que c'était juste un
void *
mais je suis curieux de savoir si il y a un moyen de le faire.OriginalL'auteur Billy ONeal | 2010-11-08
Vous devez vous connecter pour publier un commentaire.
L'en-tête qui fait typedefs
HANDLE
estwinnt.h
. Malheureusement, c'est 15K lignes - là, afin de résoudre votre problème en y compris le slimlinewindef.h
est un peu trompeur.Voici la partie pertinente sur mon système (évidemment, les détails peuvent changer d'une révision à la révision, mais ne change pas le niveau de mise en œuvre car cela casserait existant binaires):
PS avouez que
#if 0
dans cette expédition Microsoft fichier d'en-tête.donc, cynique... 😉
OriginalL'auteur Steve Townsend
Bien, on dirait que j'ai répondu à cette un moi-même. Je viens de
#include
ed<windef.h>
au lieu de<windows.h>
pour l'instant. Je voudrais tout de même être en mesure de déclarer avant juste la POIGNÉE si quelqu'un a un moyen de le faire.J'ai fait de même, mais je reçois une multitude d'erreurs du compilateur de
winnt.h
. Aucune idée pourquoi?OriginalL'auteur Billy ONeal