Tipo de datos HINSTANCE Tipo de datos HINSTANCE

Reimpreso: https://www.cnblogs.com/furzoom/p/hinstance.html

Tipo de datos HINSTANCE

 

Autor: Ma Yan ( Furzoom ) ( http://www.cnblogs.com/furzoom/ )
Derechos de autor: jardín pertenece al autor de este blog y común a todos. Al volver a imprimir, indique el enlace detallado de este artículo en un lugar obvio. No elimine esta declaración sin el consentimiento del autor. Gracias por su contribución a la protección de los derechos de propiedad intelectual.

在看《 WINDOWS程序设计 》过程中,对于HINSTANCE的理解很重要,网上多数说其是一个整型变量,其实是不对的。http://furzoom.com/

HINSTANCE定义

HINSTANCE数据类型-枫竹梦

通过查找HINSTANCE的定义有WINDEF.H中为:

001
DECLARE_HANDLE( HINSTANCE );

Supongo que debería ser una definición de macro, continúe mirando la definición de DECLARE_HANDLE (), también en WINDEF.H, de la siguiente manera:

001
002
003
004
005
006
007
008
#ifdef STRICT
typedef void * HANDLE ;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE ;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE * PHANDLE ;

Se puede ver que DECLARE_HANDLE () se define en una condición predefinida, por lo tanto, si la condición es verdadera, continúe buscando la definición de ESTRICTO, al comienzo de WINDEF.H son los siguientes:

001
002
003
004
005
006
007
008
#ifndef _WINDEF_
#define _WINDEF_
 
#ifndef NO_STRICT
#ifndef STRICT
#define STRICT 1
#endif
#endif /* NO_STRICT */

De esta manera, sabemos que STRICT se define por defecto.

Luego mire la definición de macro DECLARE_HANDLE (),

001
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name

## es una conexión de caracteres, entonces

001
DECLARE_HANDLE( HINSTANCE )

Es equivalente a

001
struct HINSTANCE__ { int unused; }; typedef struct HINSTANCE__ * HINSTANCE ;

HINSTANCE es una variable de puntero que apunta a la estructura HINSTANCE, y solo hay una variable int en la estructura. En WINDOWS, los identificadores se definen principalmente de esta manera.

De: tipo de datos HINSTANCE - Programación de WINDOWS - Maple Bamboo Dream

在看《 WINDOWS程序设计 》过程中,对于HINSTANCE的理解很重要,网上多数说其是一个整型变量,其实是不对的。http://furzoom.com/

HINSTANCE定义

HINSTANCE数据类型-枫竹梦

通过查找HINSTANCE的定义有WINDEF.H中为:

001
DECLARE_HANDLE( HINSTANCE );

Supongo que debería ser una definición de macro, continúe mirando la definición de DECLARE_HANDLE (), también en WINDEF.H, de la siguiente manera:

001
002
003
004
005
006
007
008
#ifdef STRICT
typedef void * HANDLE ;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE ;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE * PHANDLE ;

Se puede ver que DECLARE_HANDLE () se define en una condición predefinida, por lo tanto, si la condición es verdadera, continúe buscando la definición de ESTRICTO, al comienzo de WINDEF.H son los siguientes:

001
002
003
004
005
006
007
008
#ifndef _WINDEF_
#define _WINDEF_
 
#ifndef NO_STRICT
#ifndef STRICT
#define STRICT 1
#endif
#endif /* NO_STRICT */

De esta manera, sabemos que STRICT se define por defecto.

Luego mire la definición de macro DECLARE_HANDLE (),

001
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name

## es una conexión de caracteres, entonces

001
DECLARE_HANDLE( HINSTANCE )

Es equivalente a

001
struct HINSTANCE__ { int unused; }; typedef struct HINSTANCE__ * HINSTANCE ;

HINSTANCE es una variable de puntero que apunta a la estructura HINSTANCE, y solo hay una variable int en la estructura. En WINDOWS, los identificadores se definen principalmente de esta manera.

De: tipo de datos HINSTANCE - Programación de WINDOWS - Maple Bamboo Dream

Supongo que te gusta

Origin www.cnblogs.com/MCSFX/p/12670894.html
Recomendado
Clasificación