含义
- 其实就是编码问题
- A:
- 代表ANSI
- W:
- 代表宽字节(wide),即 Unicode
- A:
- 一般win的库函数如果后面不加 ’A‘ 或 'W' 时,直接给它传字符串类型值时会报错:
- 以我常用的 ShellExecute() 为例:
- 会报错:
- "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容
- 不存在从 “std::string” 到 “LPCWSTR” 的适当转换函数
- LPCWSTR 是个啥?让我们来看看它的定义:
- typedef const wchar_t* LPCWSTR;
- 即指向unicode编码字符串的32位指针,并且所指向字符串是wchar,而非char。
- 解决方法:
- 把函数改为 ShellExecuteA() 或 ShellExecuteW()
- 或者在传字符串时使用宏定义转换类型
- 对于常量字符串:
- _T() (推荐使用)自适应转换,当程序定义为unicode时,相当于L,当程序定义为ansi时,则被忽略(头文件:#include <tchar.h>)
- L ;例如原本传值为 fun("open"),使用后为fun(L"open");注意这个L并没有括号。
- CA2W() 从宽字符集(Unicode)转为多字符集(ANSI)(头文件:#include <atlstr.h>)
- CW2A() 从多字符集(ANSI)转化为宽字符集(Unicode)(头文件:#include <atlstr.h>)
- 对于string / char[] / const char[] :
- 使用以下函数
LPCWSTR stringToLPCWSTR(const 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;
}
- -
- -
- 那么如果我是 char[] 或者 const char[] 呢?那当然是转string再使用上面的函数啦。
- 示例:
- -
ShellExecuteA(NULL, "open", "https://blog.coolight.cool/", NULL, NULL, SW_SHOWNORMAL);
string str = "https://blog.coolight.cool/";
ShellExecute(NULL, _T("open"), stringToLPCWSTR(str), NULL, NULL, SW_SHOWNORMAL);
const char link_char[] = "https://blog.coolight.cool/";
ShellExecute(NULL, _T("open"), stringToLPCWSTR(string(link_char)), NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, L"open", CA2W("https://blog.coolight.cool/"), NULL, NULL, SW_SHOWNORMAL);
常见编码格式
见另一篇文章:常见编码格式 / 字节序(大端 / 小端)/ 带BOM
https://kampharm.shop/# kam pharm shop
gabapentin: GabaPharm Gabapentin – buy gabapentin online
Где и как купить диплом о высшем образовании без лишних рисков
Тут можно преобрести сейф несгораемый купить сейф огнестойкий цена
Процесс получения диплома стоматолога: реально ли это сделать быстро?
http://erepharm.com/# erepharm.com
cheapest Gabapentin GabaPharm: Buy gabapentin for humans – Buy gabapentin for humans
http://gabapharm.com/# GabaPharm
Как оказалось, купить диплом кандидата наук не так уж и сложно
Можно ли купить аттестат о среднем образовании, основные моменты и вопросы
Hi! Do you know if they make any plugins to help with Search Engine Optimization?
I’m trying to get my blog to rank for some targeted
keywords but I’m not seeing very good success.
If you know of any please share. Appreciate it! I saw similar art here: Eco wool
furosemide fur pharm: furosemide furpharm.com – fur pharm
https://furpharm.com/# furosemide
Здесь можно преобрести купить сейф москва сейфы купить
ed pills: buy ed pills – ED pills non prescription
Здесь можно преобрести стоимость сейфа сейф в наличии
https://furpharm.com/# cheapest lasix
Тут можно преобрести сейф под ружье купить оружейный сейф купить
fur pharm lasix lasix
https://erepharm.com/# cheapest ed pills ere pharm
вывод из запоя в стационаре ростов-на-дону https://www.to.iboard.ws/viewtopic.php?id=8062#p17998 .
вывод из запоя круглосуточно https://rubiz.forum.cool/viewtopic.php?id=3745/ .
нарколог на дом вывод из запоя на дому нарколог на дом вывод из запоя на дому .
Exclusive deals on fashion https://skidki-i-kupony.ru/ .
вывод из запоя анонимно ростов вывод из запоя анонимно ростов .
вывод. из. запоя. ростов. http://www.vip.rolevaya.info/viewtopic.php?id=6897/ .
вывод из запоя цены ростов вывод из запоя цены ростов .
вывод из запоя цена ростов http://www.forumsilverstars.forum24.ru/?1-2-0-00000147-000-0-0-1730726055/ .
I love how you incorporate personal stories and experiences into your posts It makes your content relatable and authentic
Travel coupons for flights http://www.skidki-i-kupony.ru/ .
вывод из запоя цены на дому ростов http://www.forumbar.anihub.me/viewtopic.php?id=9752/ .
вывод из запоя цена ростов alhambra.bestforums.org/viewtopic.php?f=2&t=46371 .
вывод из запоя ростов и область http://forumbar.anihub.me/viewtopic.php?id=9752/ .
Home decor Promo Codes http://www.skidki-i-kupony.ru .
вывод из запоя дешево ростов-на-дону https://kozaostra.mybb.ru/viewtopic.php?id=14285/ .
срочный вывод из запоя ростов http://www.mymoscow.forum24.ru/?1-6-0-00022906-000-0-0-1730726155 .
вывод из запоя дешево ростов-на-дону http://www.vip.rolevaya.info/viewtopic.php?id=6897 .
вывод. из. запоя. на. дому. ростов. http://www.alhambra.bestforums.org/viewtopic.php?f=2&t=46371 .
вывод из запоя круглосуточно ростов-на-дону https://gonochki.forum24.ru/?1-10-0-00001135-000-0-0-1730726022/ .
ED pills non prescription ED pills non prescription cheapest ed pills ere pharm
Seasonal deals on outdoor gear http://www.skidki-i-kupony.ru .
cheapest Kamagra Kam Pharm kam pharm shop Kam Pharm
вывод из запоя на дому ростов недорого https://www.familyportal.forumrom.com/viewtopic.php?id=28564 .
вывод из запоя ростов на дону на дому kryto.ukrbb.net/viewtopic.php?f=3&t=1164 .
вывод из запоя ростов и область kozaostra.mybb.ru/viewtopic.php?id=14285 .
Pet care coupons available skidki-i-kupony.ru .
https://kampharm.shop/# kampharm.shop
Здесь можно преобрести купить сейф новый сейф
анонимный. вывод. из. запоя. ростов. анонимный. вывод. из. запоя. ростов. .
вывод из запоя на дому ростов-на-дону vip.rolevaya.info/viewtopic.php?id=6897 .