Compiler Error C2065

Эта ошибка связана с отсутствием определения переделенной. Смотрим пример:

#include "stdafx.h"

int main(int argc, char* argv[])
{
for (int x=0;x<y;x++) //y не объявлена
{
}
return 0;
}

Переменная y не определена:

D:\VС\TestError\TestError.cpp(12) : error C2065: 'y' : undeclared identifier 

Основа этой ошибки в том, что переменную прежде чем использовать нужно объявить. А вот почему она не объявлена, может быть много случаев. Например, перепутаны верхние - нижние индексы в названиях.

#include "stdafx.h"

int main(int argc, char* argv[])
{
int X; // надо бы нижнем регистром
for (int x=0;x<y;x++)
{
}
return 0;
}

Отсутствие определения функции или переменной может быть связано с отсутствием заголовочного файла.

#include "stdafx.h"

int main(int argc, char* argv[])
{
BOOL i;
return 0;
}

Она просто не определена в заголовочном файле:

D:\VС\TestError\TestError.cpp(11) : error C2065: 'BOOL' : undeclared identifier 

Она просто не определена в заголовочном файле. Надо включить windows.h и все станет на свое место.

Область видимости переменной может привести к появлению этой ошибки.

#include "stdafx.h"

int main(int argc, char* argv[])
{
for (int x=0;x<10;x++)
{
for (int y=0;y<10;y++)
{
}
}
y=20;
return 0;
}

И та же ошибка:

D:\VС\TestError\TestError.cpp(15) : error C2065: 'y' : undeclared identifier