Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для kcalbCube
15 / 13 / 4
Регистрация: 16.08.2018
Сообщений: 125

Конвертирование std::string в LPCWSTR

09.09.2018, 08:36. Показов 1364. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хелп! Я новичок в WinApi но мне понадобилось
ввести значение(Через cin) и перенести его в
C++
1
FindWindow(NULL, Суда);
поэтому подскажите способ конвертирование std::string в LPCWSTR или
предложите альтернативу.

0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2018, 08:36
Ответы с готовыми решениями:

Конвертация и передаче типов char* HBITMAP std::string
Здрасти уважаемые форумчани. Я уже наверное неделю мучаюсь с написанием системы контроля за игроком со стороны клиента(Стелс античит) В...

Как в стандартную функцию WinAPI передать тип данных std::string вместо char*?
Помогите пожалуйста. Мне надо в GetDlgItemText передать std::string. Как это можно сделать? Вижуалка говорит, что нельзя преобразовать...

Не могу разобраться как обновить в std::map<std::string, вектор_структур>
Не могу разобраться как обновить вектор структур после его добавления в map без удаления и перезаписи struct pStruct { int...

4
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,118
09.09.2018, 09:08
Лучший ответ Сообщение было отмечено kcalbCube как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    // вызов функции поиска с аргументами <char>
    std::string cs("Test");
    HWND f1 = FindWindowA(0, cs.c_str());
    // вызов функции поиска с аргументами <wchar_t>
    std::wstring ws(L"Test");
    HWND f2 = FindWindowW(0, ws.c_str());
 
    // конвертация из <wchar_t> и вызов функции поиска с аргументами <char>
    char cst[128] = { 0 };
    WideCharToMultiByte(CP_ACP, 0, ws.c_str(), -1, cst, 128, 0, 0);
    HWND f3 = FindWindowA(0, cst);
    // конвертация из <char> и вызов функции поиска с аргументами <wchar_t>
    wchar_t wst[128] = { 0 };
    MultiByteToWideChar(CP_ACP, 0, cs.c_str(), -1, wst, 128);
    HWND f4 = FindWindowW(0, wst);
 
    // вызов функции поиска через макрос <FindWindow>
#ifdef UNICODE
    wchar_t wst[128];
    MultiByteToWideChar(CP_ACP, 0, cs.c_str(), -1, wst, 128);
    HWND f5 = FindWindow(0, wst);
#else
    HWND f5 = FindWindow(0, cs.c_str());
#endif // UNICODE
1
 Аватар для kcalbCube
15 / 13 / 4
Регистрация: 16.08.2018
Сообщений: 125
09.09.2018, 10:21  [ТС]
Можешь объяснить как это изпользовать?
0
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,118
09.09.2018, 10:30
Цитата Сообщение от kcalbCube Посмотреть сообщение
Можешь объяснить как это изпользовать?
Это просто разные варианты, нужно выбрать тот, который больше нравится/подходит.
FindWindow - это макрос, который в зависимости от опций проекта превращается в FindWindowA или FindWindowW, которые уже являются именами функций. Обе функции можно вызывать напрямую. Если у вас есть std::string, то достаточно явно вызвать нужную функцию (FindWindowA) и передать в её аргумент массив символов. Массив символов можно получить из std::string с помощью метода c_str.
0
 Аватар для kcalbCube
15 / 13 / 4
Регистрация: 16.08.2018
Сообщений: 125
09.09.2018, 12:24  [ТС]
Я протестировал.
Но работает как-то плохо.

Сейчас попробую пихнуть первый вариант(С f1)
Не в main в в check(В которой этот FindWindow и изпользуеться

Добавлено через 9 минут
Можешь написать функцию для конвертирования?

Вроде _CString(std::string txt) или как-то так

Добавлено через 5 минут
Так...

Как я вижу:
002A6300 - Выход при конверте "zzz"
002A2FB4 - Выход при L"zzz"

Добавлено через 20 минут
(-_\) Извиняюсь.
Всё работает нормально.
Проблема - в dll который эта программа выполняет.
Почему-то сохранилась только первая версия dll
в который только половина функционала который я пытался проверить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.09.2018, 12:24
Помогаю со студенческими работами здесь

string & LPCWSTR
Я вызываю функцию ShellExecute. Один из параметров функции - параметры приложения. ShellExecute(NULL, _T(&quot;open&quot;), _T(&quot;путь...

std::string, std::fstream, ошибка кучи
где то начало вылетать при операции += с локальной переменной std::string. Заменил на свой qString. Замечательно, то же самое... ошибка при...

Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String
Есть строка Glib::ustring, пытался её конвертировать в sf::String, и вроде бы всё работает без особых костылей, но как добрался до...

Файловый поток и std::string
добрый день сейчас меня немножко ввело в тупняк - из файлового потока(ifstream) нельзя прочитать по словам типа std::string? только char*...

Немного про std::string
Привет, читал про std::string на разных сайтах. 1. Там говорят, С++ 11 гарантирует, что std::string будет stored contiguously in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru