Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
3 / 3 / 1
Регистрация: 23.01.2015
Сообщений: 330
1

LPCWSTR и string

09.08.2017, 18:01. Показов 5230. Ответов 4

Я обычно пишу на C#, но вдруг решил поиграться с хуками, а тут без C++ никак (ну конечно можно, но много ты без dll не сделаешь). Вот, нашёл в инете исходник дллки, проверил, работает, решил что-либо изменить... теперь задача:
При
C++
1
case DLL_PROCESS_ATTACH:
появляется сообщение, что типо всё ок
C++
1
 MessageBoxW(NULL, L"I hook MessageBox!", L"Hello", MB_OK);
Вроде как всё норм, но если я попытаюсь запихнуть в сообщение например id процесса, к которому она присоеденилась, я это решил сделать так:
C++
1
2
3
        std::string s = "I hook MessageBox! PID: ";
        s = s + (std::to_string(GetCurrentProcessId()));
        s = s + " .";
Наверное можно, куда лучше, но я на с++ впервые пишу, так что ... .
Всё бы хорошо, но ф-ции messageBoxW нужно не string, а какой-то LPCWSTR. Попытался так : s.c_str , не прокатило...
HELP!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.08.2017, 18:01
Ответы с готовыми решениями:

String и LPCWSTR
Здравствуйте, есть функция, показывающая дату создания файла и есть такая строчка: LPCWSTR fname1...

String в LPCWSTR
В общем сложил как правильно строку(для пути проверки папки),но теперь не могу её записать в...

LPCWSTR to std::string
Как конвертировать?

Конвертировать string в LPCWSTR
Как nbg string конвертировать в LPCWSTR и наоборот?

4
Don't worry, be happy
17267 / 10135 / 1963
Регистрация: 27.09.2012
Сообщений: 25,355
Записей в блоге: 1
09.08.2017, 18:10 2
C++
1
2
3
std::wstring s = L"message";
...
s += std::to_wstring(...);
0
3 / 3 / 1
Регистрация: 23.01.2015
Сообщений: 330
09.08.2017, 18:56  [ТС] 3
Croessmah, Я пробовал так, но всё равно ошибка, только теперь при компиляции:
Ошибка 1 error C3867: std::basic_string<wchar_t,std::char_traits<wchar_t>,std::all ocator<wchar_t>>::c_str: в вызове функции отсутствует список аргументов; используйте "&std::basic_string<wchar_t,std::char_traits<wchar_t>,std::a llocator<wchar_t>>::c_str" для создания указателя на член c:\users\***\documents\visual studio 2013\projects\hookdll\hookdll\dllmain.cpp 26 1 HookDll

Добавлено через 1 минуту
Жаль, что нельзя перед всем этим просто поставить L(...)

Добавлено через 20 минут
Как оказалось, всё было куда проще... Решил проблему вот так:
C++
1
(LPCWSTR)s.c_str()
Я раньше так пробовал, но зачем-то брал s.c_str() в скобки, а теперь всё ок...

Тема закрыта!
0
15357 / 8304 / 2015
Регистрация: 30.01.2014
Сообщений: 14,177
09.08.2017, 19:17 4
Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
Ошибка 1 error C3867: std::basic_string<wchar_t,std::char_traits<wchar_t>,std::all ocator<wchar_t>>::c_str: в вызове функции отсутствует список аргументов
.c_str() - это вызов функции, ошибка указывает на то, что скобки были нужны в конце.

Цитата Сообщение от Zagadohnik37 Посмотреть сообщение
C++
1
(LPCWSTR)s.c_str()
Если s - это std::string, то такой код категорически неверен.
0
Don't worry, be happy
17267 / 10135 / 1963
Регистрация: 27.09.2012
Сообщений: 25,355
Записей в блоге: 1
09.08.2017, 19:45 5
Zagadohnik37, кратко:
C++
1
2
3
4
std::wstring s = L"I hook MessageBox! PID: ";
s += std::to_wstring(GetCurrentProcessId());
s += L" .";
MessageBoxW(NULL, s.c_str(), L"Hello", MB_OK);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2017, 19:45

std::string конвертировать в LPCWSTR
Как преобразовать std::string в LPCWSTR?Желательно не сложной операцией?Читал про метод c_str(),но...

Правильная конвертация string в LPCWSTR?
Привет. Делаю вот так: string s_Path = &quot;путь&quot;; LPCWSTR l_Path; l_Path =...

Преобразование переменной string к LPCWSTR
День добрый! Столкнулся с проблемой преобразования string к LPCWSTR. Если используем строку в...

"HWND FindWindowW(LPCWSTR,LPCWSTR)": невозможно преобразовать


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru