Исходя из представленного кода, кажется, что callbackButton2
используется в первой строке, но объявляется после этого во второй строке.
В большинстве языков это недопустимо, поскольку идентификаторнедопустимо до тех пор, пока компилятор не сможет определить контекст (ы), в котором он может использоваться, что и делает объявление идентификатора
Попробуйте:
void callbackButton2(int state, void *pointer){
int i = 2;
return;
}
cvCreateButton("button1",callbackButton2,NULL,CV_PUSH_BUTTON,1);
В этом примере кода идентификаторcallbackButton2
объявляется как функция перед использованием в качестве аргумента функции cvCreateButton
и поэтому должно быть допустимым использованием идентификатора