Chào cả nhà, mình đang viết một chương trình đồng hồ nhắc nhở, cứ đến 1 giờ nào đó lại đưa ra một nhắc nhở tương ứng, tuy nhiên bị mắc ở đoạn truyền giá trị vào hàm, hàm được mình viết như sau:
int Displaying_Big_End(Mat image, char* window_name, RNG, char* keyWord) {
Size textsize = getTextSize(keyWord, FONT_HERSHEY_COMPLEX, 3, 5, 0);
Point org((window_width - textsize.width) / 2, (window_height - textsize.height) / 2);
int lineType = 8;
Mat image2;
for (int i = 0; i < 255; i += 2) {
image2 = image - Scalar::all(i);
putText(image2, keyWord, org, FONT_HERSHEY_COMPLEX, 3,
Scalar(i, i, 255), 5, lineType);
imshow(window_name, image2);
if (waitKey(DELAY) >= 0) {
return -1;
}
}
return 0;
}
Trong đó window_name và keyWord cùng một kiểu. Khi gọi đến hàm mình gọi như thế này:
int notice(void) {
int c;
char keyString[] = "Lunch!";
/// Start creating a window
char window_name[] = "WARNING!!!";
/// Also create a random object (RNG)
RNG rng(0xFFFFFFFF);
/// Initialize a matrix filled with zeros
Mat image = Mat::zeros(window_height, window_width, CV_8UC3);
/// Show it in a window during DELAY ms
imshow(window_name, image);
waitKey(DELAY);
/// Displaying the big end!
c = Displaying_Big_End(image, window_name, rng, keyString);
if (c != 0) return 0;
waitKey(0);
return 0;
}
Thì không hiểu sao VS lại báo lỗi:
error C2660: ‘Displaying_Big_End’ : function does not take 4 arguments
Chương trình này sử dụng OpenCV và các kiểu dữ liệu với các hàm của OpenCV là hoàn toàn hợp lệ.
Rõ ràng window_name và keyWord cùng 1 kiểu trong mọi tình huống và nếu bỏ keyWord đi mọi thứ vẫn chạy ngon lành@@. Mong được mọi người giúp đỡ ạ 


, nó là 1 ví dụ của OpenCV nên em lấy vào dùng cho chương trình cảnh báo của mình thôi ạ ^^, cải biến bằng cách thêm tham số truyền vào xâu kí tự muốn cảnh báo thôi ạ 
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?