C++常用类型转换(在Unicode和MBCS之间相互转换函数)

1、C++在Unicode和MBCS之间相互转换函数

BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize)
{
        DWORD dwMinSize;
        dwMinSize = MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, NULL, 0);

        if (dwSize < dwMinSize)
        {
                return FALSE;
        }
        MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize);
        return TRUE;
}

BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize)
{
        DWORD dwMinSize;
        dwMinSize = WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, NULL, 0, NULL, FALSE);
        if (dwSize < dwMinSize)
        {
                return FALSE;
        }
        WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, lpszStr, dwSize, NULL, FALSE);
        return TRUE;
}

使用方法:
wchar_t wText[255] = {L"你好"};
char sText[255]= {0};
WCharToMByte(wText,sText,sizeof(sText)/sizeof(sText[0]));//宽字节转多字节
MByteToWChar(sText,wText,sizeof(wText)/sizeof(wText[0]));//多字节转宽字节

 

2、std:string的格式化

#ifndef NOT_SAVE_IMAGE
	std::string name;
	std::stringstream ss1;
	ss1.str("");
	ss1 << "imageSrc";
	ss1 << index;
	ss1 << ".jpg";
	name = ss1.str();
	_saveImageMat(name, imageSrc);

	ss1.str("");
	ss1 << "imageDst";
	ss1 << index;
	ss1 << ".jpg";
	name = ss1.str();
	_saveImageMat(name, imageDst);
#endif

void CGPUTest::_saveImageMat(std::string path, const cv::Mat& img)
{
	//根据扩展名来决定储存jpg还是bmp
	if (path.find("jpg") != path.npos)//找到了jpg,一个特别的标志c++中用npos表示
	{
		vector<int> compression_params;
		compression_params.push_back(cv::IMWRITE_JPEG_QUALITY);//选择jpeg
		compression_params.push_back(100);//在这个填入你要的图片质量,默认值是95,100代表满分
		cv::imwrite(path, img, compression_params);//根据路径,保存为jpg格式
	}
	else
	{
		cv::imwrite(path, img);//根据路径,保存为bmpg格式
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值