天嵌工程师,你好,我在按照贵公司的WinCE 5.0开发完全手册上的教程编写ov9650流接口驱动的时候,写到如下部分
oid Cov9650testDlg::play()
{
BOOL ret;
/*
// set gamma
// gamma_off : dwLenIn = 0
// gamma_on : pBufIn = gamma_table; dwLenIn = sizeof(gamma_table=2048);
#define IOCTL_CAM_SETGAMMA CTL_CODE( FILE_DEVICE_VIDEO, 12, METHOD_IN_DIRECT,FILE_ANY_ACCESS)
*/
ret = DeviceIoControl(hCam,IOCTL_CAM_SETGAMMA,NULL,0,&gama_enable,1,NULL,NULL);
}
无法编译通过,出现以下提示:
错误 1 error C2065: “FILE_DEVICE_VIDEO”: 未声明的标识符 j:\My Documents\编程开发\C#\CEServer\ov9650test\ov9650test\ov9650testDlg.cpp 99 ov9650test
错误 2 error C2065: “METHOD_IN_DIRECT”: 未声明的标识符 j:\My Documents\编程开发\C#\CEServer\ov9650test\ov9650test\ov9650testDlg.cpp 99 ov9650test
错误 3 error C2065: “FILE_ANY_ACCESS”: 未声明的标识符 j:\My Documents\编程开发\C#\CEServer\ov9650test\ov9650test\ov9650testDlg.cpp 99 ov9650test
错误 4 error C3861: “CTL_CODE”: 找不到标识符 j:\My Documents\编程开发\C#\CEServer\ov9650test\ov9650test\ov9650testDlg.cpp 99 ov9650test
按照我的理解,
#define IOCTL_CAM_SETGAMMA
是一个宏定义,编译器处理的时候必然会按照#define后面的内容进行宏展开,如今,按照编译器的提示,就是宏展开时没有找到相应的标识符。但是你们手册上的代码却不会有问题,请问这是这么一回事?谢谢帮忙。
还有附件里头是我从BSP的Camera.h文件中提取的控制字,我将它做成一个头文件这样容易调用。 |