avanti dichiarare typedef struct
-
19-09-2019 - |
Domanda
Non riesco a capire come di trasmettere dichiarare una struct finestre. La definizione è
typedef struct _CONTEXT
{
....
} CONTEXT, *PCONTEXT
Io davvero non voglio tirare in questa intestazione, come si arriva ovunque incluso.
Ho provato
struct CONTESTO
e
struct _CONTEXT
senza fortuna (ridefinizione dei tipi di base con lo struct actuall in winnt.h.
Soluzione
extern "C" { typedef struct _CONTEXT CONTEXT, *PCONTEXT; }
È necessario dichiarare che _CONTEXT
è un struct
. E dichiarare come extern "C"
adatta al collegamento esterno di windows.h (che è un'intestazione C).
Tuttavia, non è necessario fornire una definizione per una typedef
, ma se lo fai, tutte le definizioni necessario abbinare ( una Definizione regola ).
EDIT:. Ho anche dimenticato l'extern "C"
Altri suggerimenti
Non è una soluzione, ma soluzione:
// 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
// ....
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow