В чем разница между _stprintf() и wsprintf()
От: RadioShark  
Дата: 28.01.04 12:58
Оценка:
Привет!

Объясните тонкости:
в чем разница между _stprintf() и wsprintf() ???

С уважением,
RadioShark


31.01.04 13:42: Перенесено модератором из 'C/C++' — ПК
Re: В чем разница между _stprintf() и wsprintf()
От: Аноним  
Дата: 28.01.04 13:00
Оценка:
Здравствуйте, RadioShark, Вы писали:

RS>Привет!


RS>Объясните тонкости:

RS>в чем разница между _stprintf() и wsprintf() ???

Вообще-то это вопрос в WinAPI а не в С++. Первая — это универсальное имя (макрос), которое в зависимости от наличия макросов _UNICODE (UNICODE) раскроется либо в sprintf, либо в wsprintf.

sprintf и wsprintf — это уже имена функций.
Re: В чем разница между _stprintf() и wsprintf()
От: Alexmoon Украина  
Дата: 28.01.04 13:03
Оценка:
Здравствуйте, RadioShark, Вы писали:

sprintf — работает с типами char
wsprintf — с wchar_t

ANSI и UNICODE версии одного алгоритма
Re: В чем разница между _stprintf() и wsprintf()
От: folk Россия  
Дата: 28.01.04 13:15
Оценка:
Здравствуйте, RadioShark, Вы писали:

RS>Привет!


RS>Объясните тонкости:

RS>в чем разница между _stprintf() и wsprintf() ???

RS>С уважением,

RS>RadioShark

_stprintf — макрос, раскрывающийся в функции стандартной библиотеки С sprintf / swprintf в зависимости от #ifndef _UNICODE
wsprintf — макрос, раскрывающийся в функции winapi wsprintfA / wsprintfW в зависимости от #ifndef UNICODE
В MSDN это должно быть описано
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re[2]: В чем разница между _stprintf() и wsprintf()
От: RadioShark  
Дата: 28.01.04 13:18
Оценка:
Здравствуйте, Alexmoon, Вы писали:

A>Здравствуйте, RadioShark, Вы писали:


A>sprintf — работает с типами char

A>wsprintf — с wchar_t

A>ANSI и UNICODE версии одного алгоритма



Не путайте swprintf() и wsprintf() !!!

_stprintf() == swprintf() когда определен макрос _UNICODE

Вопрос открыт.
Re[2]: В чем разница между _stprintf() и wsprintf()
От: RadioShark  
Дата: 28.01.04 13:25
Оценка:
Здравствуйте, folk, Вы писали:

F>_stprintf — макрос, раскрывающийся в функции стандартной библиотеки С sprintf / swprintf в зависимости от #ifndef _UNICODE

F>wsprintf — макрос, раскрывающийся в функции winapi wsprintfA / wsprintfW в зависимости от #ifndef UNICODE
F>В MSDN это должно быть описано

т.е., как я понял _stprintf() — это относится к стандартной библиотеки, а wsprintf() — это функция winapi.

Это и все различие?
Какая принципиальная разница в использовании _stprintf() и wsprintf() ???
Re[3]: В чем разница между _stprintf() и wsprintf()
От: Denis Россия http://blogs.gotdotnet.ru/personal/Denis
Дата: 28.01.04 13:28
Оценка:
Здравствуйте, RadioShark, Вы писали:

RS>т.е., как я понял _stprintf() — это относится к стандартной библиотеки, а wsprintf() — это функция winapi.

не правильно

RS>Это и все различие?

RS>Какая принципиальная разница в использовании _stprintf() и wsprintf() ???

отличие в том что ты можешь компилять версию программы для Win98 тогда Unicode тебе не нужен, и версию для NT тогда нужен. Соотвтетственно что бы не иметь две версии исходников можно использовать макрос.
... << RSDN@Home 1.1.0 stable >>
Re[3]: В чем разница между _stprintf() и wsprintf()
От: Alexmoon Украина  
Дата: 28.01.04 13:53
Оценка:
Здравствуйте, RadioShark, Вы писали:

RS>Не путайте swprintf() и wsprintf() !!!


RS>_stprintf() == swprintf() когда определен макрос _UNICODE


Лично для себя я такие вещи уже давно не путаю.
Если вопрос был только в этом, тогда в чем проблема? В МСДН все настолько прозрачно написано, что я даже не уточнял лишний раз, потому что думал что вопрос лишь в разнице использования различных кодировок.

wsprintf и аля иже с ними напоминающими интерфейс CRT — ИМХО были введены лишь для того чтобы работать с типами Майкрософт без лишней конвертации, которая всегда потенциальный источник ошибок и очень зависящая от реализации. И то что LPTSTR на сегодня эквиваленто char* or wchar_t* в зависимости от определенного макроса — это совершенно может не являтся фактом в последующих версиях их OS Windows. Поэтому если твоя программа only Windows implementation, то лучше пользоваться WinAPI аналогами. Это мое ИМХО.
Re[4]: В чем разница между _stprintf() и wsprintf()
От: folk Россия  
Дата: 28.01.04 23:45
Оценка:
Здравствуйте, Denis, Вы писали:

D>Здравствуйте, RadioShark, Вы писали:


RS>>т.е., как я понял _stprintf() — это относится к стандартной библиотеки, а wsprintf() — это функция winapi.

D>не правильно

Не путай человека, он сказал почти правильно.
На всякий случай отмечу что _stprintf не входит в стандартную библиотеку, это майкрософтская надстройка.

RS>>Это и все различие?

RS>>Какая принципиальная разница в использовании _stprintf() и wsprintf() ???

wsprintf не умеет форматировать числа с плавающей точкой и 64-битные числа.
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re[5]: В чем разница между _stprintf() и wsprintf()
От: kometa  
Дата: 29.01.06 21:12
Оценка:
F>wsprintf не умеет форматировать числа с плавающей точкой и 64-битные числа.
Совершенно верно. Для этих целей подходит как раз swprintf().
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.