Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > C/C++: Системное программирование и WinAPI > ServiceMain и аргументы


Автор: Парамон 02.02.17, 08:55
В функции ServiceMain в lpszArgv аргументы мне постоянно приходят в unicode, хотя на msdn описано как LPTSTR *lpszArgv и проект у меня без поддержки юникода. Так и должно быть?

Автор: ЫукпШ 04.02.17, 22:01
Цитата Парамон @
В функции ServiceMain в lpszArgv аргументы мне постоянно приходят в unicode,

Да вроде нет.
Подробного исследования я не делал, просто пересобрал
сервис как ASCII. Ничего не изменилось, параметр выводится правильно.
Но параметр у меня один, и он латинскими буквами.

Автор: Парамон 05.02.17, 15:17
У меня тоже параметр латиницей, но тем не менее приходит только в юникоде :(
Всё бы ничего если бы я знал что так будет на всех компьютерах а не только у меня.

Автор: shm 05.02.17, 16:00
А если явно StartServiceCtrlDispatcherA заюзать?

Автор: ЫукпШ 05.02.17, 17:40
Цитата Парамон @
Всё бы ничего если бы я знал что так будет на всех компьютерах а не только у меня.

По-байтно разобрал параметр. Всё в порядке. Система WinXP SP3, WIN7.
А компилятор у тебя какой ?
---
Mогу передать тебе "рыбу"-сервис.
Для выяснения - это особенности только твоей системы или нет ?

Автор: Олег М 06.02.17, 10:49
Цитата Парамон @
В функции ServiceMain в lpszArgv аргументы мне постоянно приходят в unicode, хотя на msdn описано как LPTSTR *lpszArgv и проект у меня без поддержки юникода. Так и должно быть?


Т.е LPTSTR у тебя раскрывается как char *, т.е. ascii, а строка, на которую указывает lpszArgv - в unicode?

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)