![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Tensor146 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 20.1.2012 Репутация: нет Всего: нет |
Начну с кода:
как понимаете, суть в том, что программа забирает из .txt-шного файла очередное имя процесса (игры, но это не суть важно), переводит его в WCHAR и дальше получает pid данного процесса. проблема в том, что после нормального получения имени процесса, скажем, mspaint.exe, программа превращает это название в набор китайских иероглифов. Разумеется, после этого PIDByName(buf) выдаст нам нолик (вместо единички, как надо было). Вопрос, в чем я не прав? одно из значений buf (взято из дебаггера): 쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌쳌ཎ豍,⼽ú" такой код:
выводит единичку, как и надо. |
||||
|
|||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Tensor146, да все верно.
я бы еще посоветовал не пользоваться винапишным спринтфом. и тогда можно будет не вызывать MultiByteToWideChar. swprintf (buf, L"%S", string); именно так, sw.. и большая %S (правда не уверен в переносимости, но здесь по-моему никто и не претендует... |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Только маленькая поправочка:
Это сообщение отредактировал(а) feodorv - 18.2.2012, 02:20 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| Tensor146 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 20.1.2012 Репутация: нет Всего: нет |
Благодарю вас, все заработало!
Только, вы не подскажете, в чем ошибка-то была? почему иероглифы были вместо текста? |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Патамушта ты
тут wsprintf(buf, L"%s", string); какимто хитрым макаром пытался string(тип char) пытался привести к типу wchar_t ( L"%s"), а так нельзя делать. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |