含义
- 其实就是编码问题
- A:
- 代表ANSI
- W:
- 代表宽字节(wide),即 Unicode
- A:
- 一般win的库函数如果后面不加 ’A‘ 或 'W' 时,直接给它传字符串类型值时会报错:
- 以我常用的 ShellExecute() 为例:
![](https://blog.coolight.cool/wp-content/uploads/2022/04/image-6.png)
- 会报错:
- "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://autoinfo.kyiv.ua із автомобільного середовища. Поради автоаматорам. Тест-драйви
Слимофор https://slymofor.ru инновационное средство для быстрого похудения.
Сериал “911: Служба спасения” рассказывает о работе сотрудников экстренных служб Лос-Анджелеса, включая пожарных, медиков и операторов 911. Они ежедневно сталкиваются с опасными ситуациями, спасая жизни и решая сложные личные проблемы. Смотрите онлайн в хорошем качестве HD, бесплатно, все сезоны.
В нашем интернет магазине https://shop-uggs.ru представлен широкий ассортимент оригинальных женских, мужских и детских UGG Australia. Вы можете купить угги у нас в Москве, а так же с доставкой по России без предоплаты. Мы привозим 2 пары обуви на примерку, вы сможете сначала примерить уги и только потом оплачивать те угги которые вам подошли.
Привет, друзья!
Заказать документ университета вы можете в нашем сервисе.
ast-diplomy24.ru/kupit-diplom-rostov-na-donu
Хорошей учебы!
Официальный сайт по продаже оригинальных кроссовок изи буст https://yeezy-boost-shop.ru в Москве. Мы продаем yeezy boost оригинал с доставкой по всей России. В нашей линейке есть такие модели Adidas yeezy 350, yeezy 500, yeezy slide.
Добрый день!
Заказать диплом о высшем образовании.
b98385gb.beget.tech/2024/07/08/attestaty-diplomy-i-sertifikaty-v-luchshem-onlayn-magazine.html
Добрый день!
Мы готовы предложить дипломы любой профессии.
one-arabic.com/куплю-диплом-стоматолога/
Всегда вам поможем!.
driving rental car from Croatia to Montenegro renting a car in Montenegro
Привет, друзья!
Заказать документ о получении высшего образования можно в нашей компании в столице.
ast-diplomy.com/kupit-diplom-kazan
порево классный секс http://klassny-sex.ru/ .
смотреть классное порево смотреть классное порево .
Автомобільний портал https://allauto.kyiv.ua який захоплює своїми тест-драйвами та новими новинами автосвіту
Новини автомобільного ринку https://autoguide.kyiv.ua та автопромисловості
Автомобільний портал https://autodream.com.ua новини та огляди новинок авторинку.
Добрый день!
Купить документ ВУЗа вы сможете у нас в столице.
diplomasx24.ru/kupit-diplom-ekaterinbur
Успешной учебы!
Мазь для суставов https://sustalits.ru заказать онлайн.
классное порево видео http://www.klassny-sex.ru .
rent a car in Montenegro airport rental cars Montenegro
Добрый день!
Вопросы и ответы: можно ли быстро купить диплом старого образца?
caretrip.net/купить-диплом-вуза-быстро-и-легко/
Окажем помощь!.
Строительство заборов под ключ в Санкт-Петербурге от компании https://trudolubov.com. Изготовление, доставка и монтаж ограждений по всей Ленинградской области
Газоблоки https://gasoblok.ru являются самым популярным материалом для строительства домов из газобетона, они стали эффективной, надежной и недорогой технологией. Качественные газобетонные блоки производятся промышленным способом и обрабатываются в специальных автоклавах.
Mixing Reinvented https://chipmixer.online For Your Privacy
Здравствуйте!
Мы предлагаем дипломы психологов, юристов, экономистов и прочих профессий.
encontrocentral.com/read-blog/2100_ishem-nadezhnyj-i-proverennyj-internet-magazin-s-diplomami.html
Будем рады вам помочь!.
ciprofloxacin mail online: antibiotics cipro – ciprofloxacin 500 mg tablet price
doxy 200: doxycycline 100mg without prescription – doxycycline rx
doxycycline online cheap: doxycycline pills online – doxycycline where to get
Добрый день!
Сколько стоит получить диплом высшего и среднего образования легально?
blog.filmfabrique.net/2024/06/купить-диплом-казань/
Здравствуйте!
Мы изготавливаем дипломы любой профессии по разумным ценам.
http://www.hhicecream.com/2024/06/речной-диплом-купить/
where can i buy generic clomid now: how to buy cheap clomid without prescription – how can i get clomid for sale
paxlovid price: Paxlovid buy online – paxlovid cost without insurance
Keep on working, great job!
рио бет казино
Привет, друзья!
Купить диплом любого ВУЗа.
zdravamir.ru/index.php?option=com_myblog&show=n-n-n-n-on-n-n-n-n-n-.html&Itemid=
Добрый день!
Приобрести документ института
ast-diplomy.com/kupit-diplom-rostov-na-donu
Привет, друзья!
Заказать документ о получении высшего образования можно в нашем сервисе.
ast-diplom.com/kupit-diplom-moskva
Успешной учебы!
Останні новини світу https://uamc.com.ua про Україну від порталу новин Ukraine Today
Останні новини https://thingshistory.com зовнішньої та внутрішньої політики в країні та світі.
Головні новини https://status.net.ua сьогодні, найсвіжіші та останні новини України онлайн
Корисні та цікаві статті https://sevsovet.com.ua про здоров’я, дозвілля, кар’єру.
[b]Заказать диплом о высшем образовании.[/b]
[url=http://burgasdent.listbb.ru/viewtopic.php?f=3&t=385/]burgasdent.listbb.ru/viewtopic.php?f=3&t=385[/url]
[url=http://soad.msk.ru/forum/index.php?sid=762e4b94a9d4a2c9734fb98e4b8842ae/]soad.msk.ru/forum/index.php?sid=762e4b94a9d4a2c9734fb98e4b8842ae[/url]
[url=http://usa.life/create-blog//]usa.life/create-blog/[/url]
[url=http://x70795vj.beget.tech/2024/07/08/kupit-diplom-onlayn-legko-i-bezopasno.html/]x70795vj.beget.tech/2024/07/08/kupit-diplom-onlayn-legko-i-bezopasno.html[/url]
[url=http://fat-girls.ru/kupit-diplom-otzyivyi-i-garantii/]fat-girls.ru/kupit-diplom-otzyivyi-i-garantii[/url]
[u][b] Привет, друзья![/b][/u]
Где приобрести диплом по необходимой специальности?
[url=http://my.omsystem.com/members/robertcarter/]my.omsystem.com/members/robertcarter[/url]
Awesome things here. I am very satisfied to see your article. Thank you so much and I am looking ahead to touch you. Will you kindly drop me a e-mail?
сайт драгон мани казино
Добрый день!
Заказать диплом любого университета.
bazhenova.greatforum.ru/viewtopic.php?f=17&t=5017
Новини, останні події https://prp.org.ua в Україні та світі, новини політики, бізнесу та економіки, законодавства
Новини України https://sensus.org.ua та світу сьогодні. Головні та останні новини дня
Головні новини https://mediashare.com.ua про регіон України. Будьте в курсі останніх новин
Новини та аналітика https://newsportal.kyiv.ua ситуація в Україні.
Головні новини https://pto-kyiv.com.ua України та світу
музыкальное оборудование для актового зала музыкальное оборудование для актового зала .
оборудование для сцены актового зала оборудование для сцены актового зала .