hacia adelante declare typedef'd struct
-
19-09-2019 - |
Pregunta
No puedo encontrar la manera de declarar transmita una estructura ventanas. La definición es
typedef struct _CONTEXT
{
....
} CONTEXT, *PCONTEXT
Realmente no quiero tirar en esta cabecera, ya que se incluye en todas partes.
He intentado
struct CONTEXTO
y
struct _context
sin suerte (redefinición de los tipos básicos con la estructura tendrán algo en winnt.h.
Solución
extern "C" { typedef struct _CONTEXT CONTEXT, *PCONTEXT; }
Es necesario para declarar que es un _CONTEXT
struct
. Y declararemos como extern "C"
para que coincida con la unión externa de windows.h (que es una cabecera de C).
Sin embargo, no es necesario proporcionar una definición de una typedef
, pero si lo hace, todas las definiciones debe coincidir (la Una definición de regla ).
EDIT:. También se me olvidó el extern "C"
Otros consejos
No es solución, pero la solución:
// h-file
struct MyContext; // forward decl
void f(MyContext * pContext); // use pointer
//cpp-file
#include <windows.h>
struct MyContext {
CONTEXT cont;
};
void f(MyContext * pContext)
{
CONTEXT * p_win_cont = & pContext->cont;
// use p_win_cont
// ....
}