Вы используете неправильные параметры для вызова cvCreateButton. Согласно документации здесь подпись функции
cvCreateButton(const char* button_name CV_DEFAULT(NULL), CvButtonCallback on_change CV_DEFAULT(NULL), void* userdata CV_DEFAULT(NULL), int button_type CV_DEFAULT(CV_PUSH_BUTTON), int initial_button_state CV_DEFAULT(0)
и примеры звонков:
cvCreateButton(NULL,callbackButton);
cvCreateButton("button2",callbackButton,NULL,CV_CHECKBOX,0);
cvCreateButton("button3",callbackButton,&value);
cvCreateButton("button5",callbackButton1,NULL,CV_RADIOBOX);
cvCreateButton("button6",callbackButton2,NULL,CV_PUSH_BUTTON,1);
и объявление функции обратного вызова должно быть:
CV_EXTERN_C_FUNCPTR( *CvButtonCallback)(int state, void* userdata));
Вы получаете ошибку компоновки, а не ошибку компилятора, потому что cvCreateButton имеет внешнюю связь "C" - это означает, что параметры нельзя проверить во время компиляции.