"TRUE“未声明的标识符

hujilin1229 2013-02-26 04:29:16
采用了微视的一款采集卡,使用VS编程,采集图像正常,可是当转换为Qt编程时,出现了问题。当使用Qt时,出来的图像应该只具有感光性,毫无图像可言,一个图像分成了五份,每一份都是一样的图。采用的SDK中有个MVAPI.h的文件。当在主函数中采用
// 捕获一帧
MVAPI PVOID WINAPI MV_CaptureSingle( HANDLE hDevice, BOOL IsProcess, PVOID pInBuff, ULONG BuffLen, PMV_IMAGEINFO pInfo );

时,第二个形参当使用FALSE时,编译时会出现“未声明的标识符”。这个在VS下时是完全正常的,所以觉得有可能是Qt与VS有什么区别,导致现在图像采集的不正常,故发帖求救,望各位给点建议。
我在Qt编程时,也采用了MSVC2008作为编译器来编译代码了,问题依旧,故请各位不吝赐教啊!
...全文
1436 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-02-28
  • 打赏
  • 举报
回复
引用 8 楼 billzheng 的回复:
引用 7 楼 zhao4zhong1 的回复:改为C/C++ code?1#define TRUE (1)再试试
不管是白猫黑猫,抓住老鼠就是好猫。 不管别人的大拇指朝下还是朝上,能解决问题就行。
赵4老师 2013-02-27
  • 打赏
  • 举报
回复
在本.cpp前面加
#define TRUE (-1)
试试
hujilin1229 2013-02-27
  • 打赏
  • 举报
回复
我最后就直接没有用TRUE和FALSE,用1和0替换 还发现了这个采集卡的SDK代码不能写的太近,硬件来不及反应,导致我的异常图像产生,现在已解决,谢谢各位了
billzheng 2013-02-27
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
改为C/C++ code?1#define TRUE (1)再试试
赵4老师 2013-02-27
  • 打赏
  • 举报
回复
改为
#define TRUE (1)
再试试
billzheng 2013-02-27
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
在本.cpp前面加C/C++ code?1#define TRUE (-1)试试
What the F*****************************uck is that when you define TRUE to -1, such an idiot.
hujilin1229 2013-02-27
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
在本.cpp前面加C/C++ code?1#define TRUE (-1)试试

貌似还是不行,虽然这个错误没了,但是执行的时候还是不对,出来的图像还是
求解啊
hujilin1229 2013-02-26
  • 打赏
  • 举报
回复
引用 2 楼 tiewen 的回复:
BOOL,TRUE,FALSE是Windows中的一些定义: typedef BOOL int; #define TRUE 1 #define FALSE 0 Qt中没有这些定义,当然报错
可是当我把“windef.h”作为一个头文件,包含到我的项目中时,问题还是没有解决,这个如何解!!
铁文 2013-02-26
  • 打赏
  • 举报
回复
BOOL,TRUE,FALSE是Windows中的一些定义: typedef BOOL int; #define TRUE 1 #define FALSE 0 Qt中没有这些定义,当然报错
hujilin1229 2013-02-26
  • 打赏
  • 举报
回复
MVAPI HANDLE WINAPI MV_OpenDevice( DWORD Index, BOOL bRelese )
如果是上面哪句话,也是同样的问题!!“ error C2065: “TRUE”: 未声明的标识符” 顺便附上MVAPI的头文件代码:
#ifndef  __MVAPI__
#define  __MVAPI__

#include "Common.h"
#ifdef __cplusplus
#define MVAPI extern "C" __declspec (dllexport)
#else
#define MVAPI __declspec (dllexport)
#endif

class CLabView
{
private:
	HANDLE  m_fHandle;
	ULONG   m_DataPoint;

	HANDLE  m_BmpThread;
	BOOL    m_Exit;
	BOOL    m_bBusy;
	static DWORD WINAPI Bmp_Thread( CLabView* lp );

public:
	ULONG   m_Width;
	ULONG   m_Height;
	ULONG   m_nColor;
	ULONG   m_SkipPixel;
	PUCHAR  m_pMiddle;

	ULONG   m_BmpLength;
	ULONG   m_BmpLineByte;
	ULONG   m_RawLineByte;
	ULONG   m_RawSkipByte;

	CLabView( ULONG Width, ULONG Heigth, ULONG nColor, ULONG SkipPixel );
	~CLabView();
	static BOOL  WINAPI LabViewCallBack( PVOID pData, PMV_IMAGEINFO pImageInfo, CLabView* lp, ULONG Index );
};

// 错误提示
MVAPI DWORD WINAPI MV_GetLastError( BOOL bDisplayErrorStyring );

// 保存pImageData中图像到MV_FILETYPE指定类型的文件
MVAPI BOOL WINAPI MV_SaveFile( PUCHAR FileName, MV_FILETYPE FileType, PVOID pImageData, PMV_IMAGEINFO pImage,
                               ULONG ImageTotal, BOOL IsUpDown, BOOL ColororNot, ULONG Quality, BOOL m_bRGB15=true);
MVAPI BOOL WINAPI MV_SaveFilePro( PUCHAR FileName, MV_FILETYPE FileType, PVOID pImageData, PMV_IMAGEINFO pImage,
                               ULONG ImageTotal, BOOL IsUpDown, BOOL ColororNot, ULONG Quality,BOOL m_bRGB15=true);

// 得到主机中插的微视的卡数
MVAPI DWORD   WINAPI MV_GetDeviceNumber();

// 创建设备
MVAPI HANDLE  WINAPI MV_OpenDevice( DWORD Index, BOOL bRelese );

// 删除设备
MVAPI VOID    WINAPI MV_CloseDevice( HANDLE hDevice );

// 操纵设备
MVAPI RUNOPER WINAPI MV_OperateDevice( HANDLE hDevice, RUNOPER Oper );

// 设置设备的参数
MVAPI BOOL    WINAPI MV_SetDeviceParameter( HANDLE hDevice, MV_PARAMTER Oper, DWORD Val );

// 得到设备的参数
MVAPI LONG    WINAPI MV_GetDeviceParameter( HANDLE hDevice, MV_PARAMTER Oper );

MVAPI BOOL    WINAPI MV_SaveDeviceParam( HANDLE hDevice );
MVAPI BOOL    WINAPI MV_ResetDeviceParam( HANDLE hDevice );

// 捕获一帧
MVAPI PVOID WINAPI MV_CaptureSingle( HANDLE hDevice, BOOL IsProcess, PVOID pInBuff, ULONG BuffLen, PMV_IMAGEINFO pInfo );

// 设置设备的回调
MVAPI BOOL    WINAPI MV_SetCallBack( HANDLE hDevice, CALLBACKFUNC pCallBack, PVOID pUserData, CALLBACKTYPE CallType );

// 输出控制
MVAPI BOOL    WINAPI MV_SetOutputState( HANDLE hDevice, ULONG Index, ULONG HorL );

//输入状态读取
MVAPI ULONG WINAPI MV_GetInputState( HANDLE hDevice, ULONG Index );

// 输入触发控制
MVAPI BOOL  WINAPI MV_SetInputCallBack( HANDLE hDevice, ULONG Index, ULONG UniquelyID, PTRIGGEROUTINE pTirggerCall, PVOID pContext );

// 创建自动帧测
MVAPI BOOL    WINAPI MV_TestSignal( HANDLE hDevice, DWORD XSize, DWORD YSize );

// 得到信号的某一个参数
MVAPI DWORD   WINAPI MV_GetSignalParam( HANDLE hDevice, VIDEOSIGNAL Signal, float *FloatVal, DWORD *IntVal );

// 保存自动帧测的参数到Ini
MVAPI BOOL    WINAPI MV_SaveSignalParamToIni( HANDLE hDevice );

MVAPI BOOL    WINAPI MV_SplitRGB( HANDLE hDevice, PMV_RGB pRGB, ULONG DispType, ULONG DispPolicy, ULONG CallBackPolicy );

// 按OsdMode模式使能OSD(掩码)功能:
MVAPI BOOL   WINAPI MV_SetMaskFunction( HANDLE hDevice, ULONG OsdMode );
// 将OSD图案发送到设备
MVAPI BOOL   WINAPI MV_SetMaskBit( HANDLE hDevice, RECT MaskArea, LPBYTE pBitPattern );
MVAPI LPBYTE WINAPI MV_MakeMaskBit( HANDLE hDevice, HWND hWnd, RECT Area, COLORREF Color );

// 对设备分配大帧存
MVAPI BOOL   WINAPI MV_AllocSequenceFrameMemory( HANDLE hDevice, ULONG Action, DWORD Number, CALLBACKTYPE MemoryType );
// 对设备释放大帧存
MVAPI BOOL   WINAPI MV_FreeSequenceFrameMemory( HANDLE hDevice );
// 对大帧存开始连续捕获
MVAPI BOOL WINAPI MV_StartSequenceCapture( HANDLE hDevice, CONTINUEGARBMECHANISM pContinueCall, PVOID pContext );
// 对大帧存停止连续捕获
MVAPI LONG   WINAPI MV_StopSequenceCapture( HANDLE hDevice );
// 根据FrameNo返回帧号地址和帧属性
MVAPI PVOID WINAPI MV_GetSequenceFrameAddress( HANDLE hDevice, ULONG FrameNo, PMV_IMAGEINFO pProperty );

MVAPI ULONG WINAPI MV_ReadPixel( PMV_IMAGEINFO pProperty, PVOID pImageData, PPOINT Point, PBYTE pVal );
MVAPI VOID  WINAPI MV_WritePixel( PMV_IMAGEINFO pProperty, PVOID pImageData, PPOINT Point, PBYTE pVal );
MVAPI ULONG WINAPI MV_ReadLine( PMV_IMAGEINFO pProperty, PVOID pImageData, ULONG  nLine, PBYTE pVal );
MVAPI VOID  WINAPI MV_WriteLine( PMV_IMAGEINFO pProperty, PVOID pImageData, ULONG  nLine, PBYTE pVal );
MVAPI ULONG WINAPI MV_ReadArea( PMV_IMAGEINFO pProperty, PVOID pImageData, PRECT  pRect, PBYTE pVal );
MVAPI VOID  WINAPI MV_WriteArea( PMV_IMAGEINFO pProperty, PVOID pImageData, PRECT  pRect, PBYTE pVal );

MVAPI BOOL WINAPI I2CWrite( HANDLE hDevice, ULONG SubAdd, UCHAR buff, BOOL bPort );
MVAPI BOOL WINAPI I2CRead( HANDLE hDevice, ULONG SubAdd, PUCHAR pBuff, BOOL bPort );

MVAPI RUNOPER WINAPI MV_LabView_OperateDevice( HANDLE hDevice, RUNOPER Oper );
MVAPI PVOID WINAPI MV_LabView_GetBuffer( HANDLE hDevice );
MVAPI ULONG WINAPI MV_LabView_GetLength( HANDLE hDevice );
MVAPI ULONG WINAPI MV_LabView_GetnColor( HANDLE hDevice );
MVAPI ULONG WINAPI MV_LabView_GetHeigth( HANDLE hDevice );
MVAPI ULONG WINAPI MV_LabView_GetWidth( HANDLE hDevice );
MVAPI ULONG WINAPI MV_LabView_GetLineSkipPixel( HANDLE hDevice );

MVAPI HANDLE WINAPI MV_CreateAvi( char* FileName, PMV_IMAGEINFO pInfo, ULONG dwRate );
MVAPI VOID   WINAPI MV_WriteAvi( HANDLE hAvi, PUCHAR pBuffer, PMV_IMAGEINFO pInfo, LONG Index );
MVAPI VOID   WINAPI MV_CloseAvi( HANDLE hAvi );

#endif

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧