non géré var en tant que membre de la gestion de la classe c++
Je suis novice dans .net, c++ et en essayant de créer une classe qui ressemble à:
public ref class Klient
{
public:
Klient(){}
//zmienne
static DWORD klienty[41][2];
static int i = 1;
static DWORD* pid;
static HANDLE* handle;
//funkcje
};
mais MSV dit que:
error C4368: cannot define 'klienty' as a member of managed 'Klient': mixed types are not supported
Quel est le problème avec ce code?
- mais comment résoudre le problème sans changer de langage de programmation
Vous devez vous connecter pour publier un commentaire.
Que vous pouvez avoir .NET types de données de base comme les membres de votre géré de classe (static int i), ou des pointeurs vers quelque chose de non géré (DWORD* pid, la POIGNÉE* poignée), mais vous n'êtes pas autorisé à avoir un objet non géré directement, et le tableau d'entiers compte comme un objet non géré à cet effet.
Depuis le point de vous donner un problème ici, c'est le tableau non managé, vous pouvez passer à une matrice.
Ou, vous pouvez déclarer un non géré classe, mettez tout ce que vous devez en avoir un pointeur vers de la gestion de classe. (Si vous le faites dans un non-contexte statique, ne pas oublier de supprimer la mémoire non gérés à partir de votre outil de finalisation.)
delete unmanagedStuff
dans la gestion de destructeur de classe ? ou il présentera fuite de mémoire? Mercistatic
est parce que l'OP avait des choses mis en place. En cas de non-statique, undelete
est obligatoire pour éviter une fuite de mémoire.