2013-01-06 5 views
0

je tente de compiler flushmem.cpp avec ms C++ 2008 visuelle, mais obtenir l'erreur: \ flushmem.cpp (69): erreur C2057: expression constante attendue à la ligne. processus de poignée [processCount]; et un avertissement: . \ Flushmem.cpp (63): avertissement C4244: 'initialisation': conversion de 'unsigned __int64' en 'unsigned int', perte de données possible à la ligne: unsigned processCount = (totalPageFile + approximateProcessConsumption - 1)/approximateProcessConsumption;erreur C2057 avec poignée

comment peut-on résoudre?

+0

Aucun code externe. Veuillez inclure un cas de test minimal reproductible dans votre question ... –

Répondre

1

Le compilateur Visual Studio 2008 ne prend pas en charge une variable de la taille d'un tableau automatique. Dans la ligne:

HANDLE processes[processCount]; 

processCount est une variable et le compilateur n'accepte une constante. Vous aurez besoin d'un compilateur compatible C99 ou vous devrez changer la ligne de code ci-dessus pour allouer le tableau. Par exemple:

HANDLE* processes = new HANDLE[processCount]; 

Si vous allouez le tableau vous aurez également besoin de le supprimer avec elle lorsque vous avez terminé:

delete [] processes; 
Questions connexes