Error:const char* 类型的实参和LPCWSTR类型的形参不兼容的解决方法。

在C++的Windows 应用程序中经常碰到这种情况。

解决方法:

加入如下转换函数:

LPCWSTR stringToLPCWSTR(std::string orig)
{
	size_t origsize = orig.length() + 1;
	const size_t newsize = 100;
	size_t convertedChars = 0;
	wchar_t *wcstring = (wchar_t *) malloc(sizeof(wchar_t) *(orig.length() - 1));
	mbstowcs_s(&convertedChars, wcstring, origsize, orig.c_str(), _TRUNCATE);
	return wcstring;
}

  就不会报错了,网上说的什么用L"ddd"去做的,这个我反正试过了,运行时会出问题。

时间: 2024-08-10 11:43:22

Error:const char* 类型的实参和LPCWSTR类型的形参不兼容的解决方法。的相关文章

MFC中字符串赋值出现“Error:“const char*”类型的实参与“LPCWSTR”类型的形参不兼容”错误的解决方法

在编译MFC工程时,写下面代码出现了“Error:“const char*”类型的实参与“LPCWSTR”类型的形参不兼容”的错误. TextOut(hdc,0,0,"Mercedes",strlen("Mercedes")); 这是由于工程采用Unicode编码,这时“Mercedes”字符串类型为“wchar_t*”, 这时应该这样赋值: TextOut(hdc,0,0,_T("Mercedes"),strlen("Mercedes

ERROR 1366 (HY000): Incorrect string value: '\xAD\xE5\x9B\xBD\xE9\x82...' fo的解决方法

本地wamp导入4G数据时,出现了ERROR 1366 (HY000): Incorrect string value: '\xAD\xE5\x9B\xBD\xE9\x82...,如图下 找到的解决的方法如下: my.ini,打开 1.在[client]段落增加:default-character-set=utf8 2.在[mysqld]段落增加:character_set_server=utf8 重启MySQL服务即可. 如果还是不能解决问题,重新打开 Mysql 控制台操作如下: 1. 打开

idea启动Tomcat遇到错误:Error running 'Tomcat 7.0.912': Address localhost:1099 is already in use;解决方法如下:

cmd输入netstat -ano|findstr 1099 taskkill -f -pid 3576具体如图: idea启动Tomcat遇到错误:Error running 'Tomcat 7.0.912': Address localhost:1099 is already in use:解决方法如下: 原文地址:https://www.cnblogs.com/huidefan/p/11391255.html

在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?

今天在做 COS脚本解释器的时候,遇到了这个问题 先了解一下 LPCTCHAR 这个东东 LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串. 那么什么叫UNICODE(统一码)??? 背景知识:    计算机发明后,为了在计算机中表示字符,人们制定了一种编码,叫ASCII码.ASCII码由一个字节中的7位(bit)表示,范围是0x00 - 0x7F 共128个

【MySQL笔记】mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法

step1:查看 1.1 Mysql命令行里输入"show engines:"查看innoddb数据引擎状态, 1.2 show variables "%_buffer%"里查看innodb_buffer_pool_size的数值,默认是8M(太小,需要改大一点!) step2:找配置文件,修改innodb_buffer_pool_size=64M 2.1 在linux里配置文件是my.cnf,windows里是my.ini(注:不是my-default.ini).

jQuery $.post()返回类型为json时不进入回调函数的原因及解决方法

这真是个让人特别抓心找挠肝的问题,真的差点被这个问题逼的放弃去使用json作为返回类型,而是去用html,但是有的时候就是要较汁一下.(即便现在问题解决了,我还是想说句"妈蛋",来发泄一下) 其实主要还是自己对json的不够了解,但是很纳闷,网上对路的解决方法几乎没有.所以虽然问题很小,但是还是想要分享出来,希望能帮到需要的人. 首先$.post()格式如下: $.post(url,data,success(data, textStatus, jqXHR),dataType) 参数描述

Error mounting: mount: wrong fs type, bad option, bad superblock on /dev/sdb1简单解决方法

使用CentOS连接U盘时,刚连接时,可能会报一下错误: Error mounting: mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail  or so 初步的解决方法是将U盘里的资料备份后,重

mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file (/opt/mysql/data/mysql.pid) 的解决方法

出现问题的可能性 1.可能是/opt/mysql/data/数据目录mysql用户没有权限(修改数据目录的权限) 解决方法 :给予权限,执行  "chown -R mysql.mysql /opt/mysql/data"  然后重新启动mysqld 2.可能进程里已经存在mysql进程 解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld! 3.可能是第二次在机器上安装mysql,有残余

Error:不能将"char*"类型的值分配到"LPSTR"类型的实体 或者 "char*"类型的实参与"LPCWSTR"类型的形参不兼容

选择"XXX项目"->"属性"->"配置属性"->"常规"选项中,把"使用 Unicode 字符集"改为"使用多字节字符集",然后确定.如下图(VS2012):