带HANDLE的错误C2057

时间:2013-01-06 22:57:59

标签: visual-studio-2008

我尝试使用ms visual c ++ 2008编译flushmem.cpp,但获取错误: 。\ flushmem.cpp(69):错误C2057:预期的常量表达式 在线: HANDLE进程[processCount]; 和警告: 。\ flushmem.cpp(63):警告C4244:'初始化':从'unsigned __int64'转换为'unsigned int',可能会丢失数据 在线: unsigned processCount =(totalPageFile + approximateProcessConsumption - 1)/ approximateProcessConsumption;

如何解决?

1 个答案:

答案 0 :(得分:1)

Visual Studio 2008编译器不支持将变量作为自动数组的大小。在该行:

 HANDLE processes[processCount];

processCount 是一个变量,编译器只接受一个常量。您将需要符合C99的编译器,或者您需要更改上面的代码行来分配数组。例如:

HANDLE* processes = new HANDLE[processCount];

如果你分配了数组,你还需要在完成后删除它:

delete [] processes;