吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 748|回复: 12
收起左侧

[求助] 求救~C++ 参数类型const wchar_t*与TCHAR*不匹配

[复制链接]
Pojie1999.0909 发表于 2023-6-21 22:23
visual studio 2022
c++ 控制台项目

真是搞不懂,c++大佬,求指点!!

报错信息:
image.png

代码如下:
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bester 发表于 2023-6-21 23:28
方法1:
const wchar_t wstr[] = L"12345" ;
TCHAR* tstr = _wcsdup(wstr);
使用完记得加上下面这句
free(tstr)

方法2:
const wchar_t* source = L"Hello, World!";
TCHAR converted[100]; // 假设足够大的缓冲区
_tcscpy(converted, source);


来自gpt
爱飞的猫 发表于 2023-6-22 06:06
DLL 的函数签名,第一个参数改成 const wchar_t*
DLL 不可能同一个函数的签名既能接收 char 或 wchar_t 类型,你需要导出的时候做出决定。 TCHAR 表示跟随编译器的设定选择 char 或 wchar_t。
yangand 发表于 2023-6-22 09:20
字符串常量是const tchar*  你定义的FUNC方法是要求传入tchar*  可以将传入的_T(“你好”) 前面加上(const tchar*) 进行强转即可。即变成myf((const tchar*)_T("你好"),10)
sam喵喵 发表于 2023-6-22 09:32
楼上都是大佬,学到了!!
只是if里面为啥要goto,能不能改成return或者exit
unmask 发表于 2023-6-22 09:53
sam喵喵 发表于 2023-6-22 09:32
楼上都是大佬,学到了!!
只是if里面为啥要goto,能不能改成return或者exit

在这个例子中return/exit完全没有问题,但exit一般会结束进程,并不是返回到调用栈的,不要轻易使用。
小小随 发表于 2023-6-22 11:09
项目配置  Unicode改成 多字节集 即可解决。不需要使用 _T()
 楼主| Pojie1999.0909 发表于 2023-6-23 09:54
bester 发表于 2023-6-21 23:28
方法1:
const wchar_t wstr[] = L"12345" ;
TCHAR* tstr = _wcsdup(wstr);

感谢回复,我就是不懂,为啥我按照书里的代码这样写,会报错。
 楼主| Pojie1999.0909 发表于 2023-6-23 09:55
yangand 发表于 2023-6-22 09:20
字符串常量是const tchar*  你定义的FUNC方法是要求传入tchar*  可以将传入的_T(“你好”) 前面加上(const  ...

感谢回复,正在从C语言学起。
 楼主| Pojie1999.0909 发表于 2023-6-23 09:56
yangand 发表于 2023-6-22 09:20
字符串常量是const tchar*  你定义的FUNC方法是要求传入tchar*  可以将传入的_T(“你好”) 前面加上(const  ...

谢谢回复。强制转换需要把const去掉。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表