c2665错误

错误 C2665 “outtextxy”: 没有重载函数可以转换所有参数类型 or 错误 C2665“settextstyle ”: 没有重载函数可以转换所有参数类型
一、解决办法
方法一:字符串加上_T(“”) (自适应转换) 比较智能,可以根据实际情况自动判断转换

    outtextxy(10, 10, _T("helloworld"));
1
方法二:字符串前加 L (强制转换)

outtextxy(10, 10, L"helloworld");
1
方法三:菜单栏—->项目—>属性—>高级—>字符集 把UNICODE改为多字节字符集

二、出错原因
字符编码问题引起的。

vc++6.0默认使用的时MBCS 编码,而vs2019、vs2022默认使用的是Unicode 编码。

MBCS 编码(Multi-Byte Chactacter System(Set))——多字节字符系统或者字符集,基于ANSI编码的原理,计算机在存储的时候,采用多字节存储的形式。相当于按需分配。一个汉字分配两个字节。

用 char 表示字符时,英文占一个字节,中文占两个字节。问:如果有两个连续字节,究竟是两个英文字符,还是一个中文字符?为了解决这个问题,Unicode 编码诞生了。Unicode 编码不管中文英文都用两个字节表示。

Unicode(又称统一码、万国码、单一码),简单来说就是一个包含全世界所有文字、符号的一个编码表,因此其不存在令人揪心的冲突问题。

对于 MBCS 编码,字符变量用 char 定义。对于 Unicode 编码中,字符变量用 wchar_t 定义。

为了提高代码的自适应性,微软在 tchar.h 里面定义了 TCHAR,而 TCHAR 会根据项目定义的编码,自动展开为 char 或 wchar_t。

觉得有用的小伙伴们点个赞吧
————————————————
版权声明:本文为CSDN博主「怒码少年」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_74469506/article/details/131627375

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值