C++:头文件规范/模板

某个摄像头模块的Demo头文件,学习一下头文件规范

例1、

#ifndef __HCAMERA_H__
#define __HCAMERA_H__

#define HCAMERA_API extern "C" __declspec(dllexport)


/// 常量、结构体定义

#define VIDEOFORMAT_MJPG	0
#define VIDEOFORMAT_YUY2	1
#define VIDEOFORMAT_RGB24	2
#define VIDEOFORMAT_RGB32	3

typedef struct _HFormatResolutionInfo
{
	int videoFormat;	// 视频格式
	int videoW;			// 视频宽度
	int videoH;			// 视频高度
} HFormatResolutionInfo;

typedef enum {
	SampleGrabberMode_NonCallback =0,
	SampleGrabberMode_BufferCB,
	SampleGrabberMode_SampleCB
} SampleGrabberMode;


/// 函数定义


///
/// 宽窄字符转换
///
HCAMERA_API void hConvertWCharToChar(wchar_t* wStr, char* cStr);
HCAMERA_API void hConvertCharToWChar(char* cStr, wchar_t* wStr);

///
/// 枚举/释放视频设备(枚举时返回已连接的视频设备数量,-1表示错误,两个函数必须成对使用)
///
HCAMERA_API  int hEnumVideoDevice(void);
HCAMERA_API void hFreeVideoDevice(void);

#endif	// __HCAMERA_H__

例2、

#pragma once
#define DT_API extern "C"

#ifdef SNCAMDLL_EXPORTS
#define SNCAMDLL_API __declspec(dllexport)
#else
#define SNCAMDLL_API __declspec(dllimport)
#endif


#ifndef IN
#define IN
#endif

#ifndef OUT
#define OUT
#endif


typedef enum tagDS_CAMERA_STATUS
{
	STATUS_OK = 1,												// 动作成功
	STATUS_INTERNAL_ERROR = 0,							// 内部错误
	STATUS_NO_DEVICE_FIND = -1,							// 没有发现相机
	STATUS_NOT_ENOUGH_SYSTEM_MEMORY = -2,		// 没有足够系统内存
	STATUS_HW_IO_ERROR = -3,								// 硬件IO错误
	STATUS_PARAMETER_INVALID = -4,					// 参数无效
	STATUS_PARAMETER_OUT_OF_BOUND = -5,			// 参数越界
	STATUS_FILE_CREATE_ERROR = -6,						// 创建文件失败
	STATUS_FILE_INVALID = -7,								// 文件格式无效
	STATUS_NO_RESOLUTION_FOUND=-8,					// 不支持此格式
	STATUS_NO_CAM_INIT=-9									// 没有初始化
}DS_CAMERA_STATUS;

typedef enum tagDS_COLORSPACE
{
	COLORSPACE_YUY2,
	COLORSPACE_MJPG,
	COLORSPACE_RGB24,
	COLORSPACE_I420
}DS_COLORSPACE;

typedef enum tagDS_CAMERA_PROPERTY
{	
	PROPERTY_Brightness	= 0,								// 亮度
	PROPERTY_Contrast	= 1,									// 对比度
	PROPERTY_Hue	= 2,										// 色调
	PROPERTY_Saturation	= 3,								// 饱和度
	PROPERTY_Sharpness	= 4,								// 清晰度
	PROPERTY_Gamma	= 5,									// 伽马
	PROPERTY_ColorEnable	= 6,								// 黑白
	PROPERTY_WhiteBalance	= 7,							// 白平衡
	PROPERTY_BacklightCompensation	= 8,				// 逆光对比
	PROPERTY_Gain	= 9										// 增益
} DS_CAMERA_PROPERTY;



DT_API SNCAMDLL_API DS_CAMERA_STATUS CameraControlGet(BYTE CamNum, 
															DS_CAMERA_CONTROL uiControl,
															OUT LONG* lValue, 
															OUT DS_CONTROL_FLAGS* Flags
															);
DT_API SNCAMDLL_API DS_CAMERA_STATUS CameraControlSet(BYTE CamNum, 
															DS_CAMERA_CONTROL uiControl,
															IN LONG lValue, 
															IN DS_CONTROL_FLAGS Flags
															);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值