学习笔记:解决 warning C4566

#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
int main() 
{ 
	//warning C4566: 由通用字符名称“\u00E4”表示的字符不能在当前代码页(936)中表示出来
	//ä的UNICODE编码是 \u00E4, 在中文环境下,编译器不能把它转为GBK. 因为GBK中没有这个字符对应的编码。
	//cpp源文件里,ä可以按照utf-8格式或ucs16保存,这就是问什么关闭项目,重新打开后,ä没有丢的原因。
	//VS20XX IDE会从文件BOM头中识别当前源文件的编码方案。对于uft-8,bom=EF BB BF
	//用ultra-edit打开生成的exe,用二进制模式查看。======...会很容易发现,查看应该是ä的位置,实际是? (0x3F)
	//调试方式下,查看buff的值,也会看到ä的位置上,内存值是0x3F( 就是一个'?')
	char buff[] = "=========================ä"; 

	//增加下面这句也照样会出现warning C4566
	//setlocale(LC_ALL,"chs");

	//如果要解决C4566问题,办法是在“控制面板”->“区域与语言”->“更改系统区域设置”
	//ä是德文的一个字符,所以把“当前区域设置”成德国。经过设置和系统重启生效,发现buff中ä被编码为0xe4, 编译生成exe正常。

	//在VS20XX环境下测试一下,看能否输出正常。经测试不正常。
	//然后,从cmd中执行exe。先打开cmd,调用chcp命令查询当前code page,确保是德语 code page 1252
	//(如果console在启动后不是你希望的code page,则在这面这个注册表中,修改code page
	// [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe])
	// ( 如果不想改注册表,则每次打开cmd后,执行chcp 1252命令,转入德文环境)
	//然后执行 本程序XX.exe. 输出正常。
	//看来,从VS20XX中用调式代码的方式执行,与从cmd(shell)中启动exe,有很大差异。
	//这个差异的原因,还需要再研究学习。
	cout << buff << endl;

	//如果在程序中,用硬编码的方式强制更改为德文环境,输出正常。
	//这个办法,可以不用改注册表,也不用从cmd中执行前执行chcp 1252。
	setlocale(LC_ALL,"German");
	cout << buff << endl;

	system("pause");
	return 0;
} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。关于通过UDP传输音视频,我了解一些相关的知识,下面是一些学习笔记: 1. gstreamer是一个流媒体框架,用于创建、处理和播放多媒体流。它支持多种音视频格式,可以通过插件扩展功能。 2. 通过gstreamer可以使用UDP协议传输音视频数据。UDP协议是一种无连接的协议,不保证数据传输的可靠性和顺序性,但是传输效率高。 3. 首先需要创建一个gstreamer的pipeline,包括音视频源、编码器、UDP发送端等组件。例如: ``` gst-launch-1.0 -v filesrc location=test.mp4 ! decodebin ! x264enc ! rtph264pay ! udpsink host=192.168.1.100 port=5000 ``` 这个pipeline的作用是从test.mp4文件读取音视频流,解码后使用x264编码器进行压缩,然后使用rtph264pay将数据打包成RTP数据包,最后通过udpsink发送到指定的IP地址和端口。 4. 接收端需要创建一个gstreamer的pipeline,包括UDP接收端、解包器、解码器等组件。例如: ``` gst-launch-1.0 -v udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! autovideosink ``` 这个pipeline的作用是从UDP端口5000接收音视频数据,使用rtpjitterbuffer解决网络抖动问题,使用rtph264depay将RTP数据包解包成原始的H.264数据流,然后使用avdec_h264解码器进行解码,最后使用autovideosink播放视频。 5. 在实际使用过程,还需要考虑数据的带宽限制、网络延迟等问题,以保证音视频传输的效果。 希望这些笔记能对你有帮助。如果你还有其他问题,可以继续问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值