imho.ws |
![]() |
![]() |
![]() |
# 2 |
Junior Member
Регистрация: 16.07.2005
Адрес: Украина, г. Ровно
Пол: Male
Сообщения: 140
![]() |
Код:
SC_HANDLE OpenService(SC_HANDLE hSCManager,LPCTSTR ServiceName,DWORD dwDesiredAccess); Так что можно хранить название службы просто в TCHAR или же при варианте что имя всегда мультибайт делаеш так: Код:
LPWSTR wServiceName #ifdef UNICODE //используеш MultiByteToWideChar для конвертации с multib. в unicode #endif OpenService(hSCManager,wServiceName,dwDesiredAccess);
__________________
Та программа не глючит, которая не написана |
![]() |
![]() |
# 4 | |
Junior Member
Регистрация: 16.07.2005
Адрес: Украина, г. Ровно
Пол: Male
Сообщения: 140
![]() |
Цитата:
Ну по началу ты должен определить как ты получаеш имя сервиса от этого зависит есть ли смысл вообще его конвертить и т.п. то бишь от куда ты его береш, если он "зашыт" в программе тогда можно вообще обойтись без конвертирования так как ф-я OpenService есть как в мультибайт так и в юникоде... а если из вне тогда опешы конкретней от куда ты береш имя, и какая кодировка в программке Если хочешь писать что бы не сильно зависить от кодировки юзай tchar.h и вместо char или w_char -> TCHAR и т.д. подробней в MSDN...
__________________
Та программа не глючит, которая не написана |
|
![]() |
![]() |
# 6 |
Junior Member
Регистрация: 16.07.2005
Адрес: Украина, г. Ровно
Пол: Male
Сообщения: 140
![]() |
А какой фреймворк вы используете?
Если .NET MFC на счет WTL точно не помню но в первых двух классы фреймворка сами переходят на нужную кодировку в зависимости от наличия или отсутствия дефайна UNICODE а при использование MFC простой char нужно заменить на TCHAR и вместо strlen или ее юникодовского варианта юзать _tcslen остальные ф-и аналогично...
__________________
Та программа не глючит, которая не написана |
![]() |