Что точно является PWSTR и почему использование это именование по сравнению с символом*, станд.:: строка или CString в C++?

В различном C++ кодируют Вас, часто смотрите другое использование строк: PWSTR, символ*, станд.:: строка, CString, и т.д...

Когда наилучшее время должно использовать PWSTR по сравнению с каким-либо другим строковым типом?

7
задан Don Wakefield 19 January 2010 в 21:32
поделиться

7 ответов

Хорошо, с вопросом, включая список желаний API ...; -)

Вы можете использовать Jlayer для воспроизведения MP3 на JVM. На Ubuntu он упакован как libjlayer-java. Там простой пример использования в Java здесь . Clojure обертка:

(defn play-file [filename & opts]
  (let [fis (java.io.FileInputStream. filename)
        bis (java.io.BufferedInputStream. fis)
        player (javazoom.jl.player.Player. bis)]
    (if-let [synchronously (first opts)]
      (doto player
        (.play)
        (.close))
      (.start (Thread. #(doto player (.play) (.close)))))))

Применение (игра-файл "/path/to/file.mp3") для воспроизведения mp3-муху в отдельном потоке, (игра-файл" / путь /to/file.mp3 "true) Если вы предпочитаете воспроизводить его на текущем потоке. Твик по своему вкусу. Снабжать свой громкий звуковой сигнал и лай собаки mp3. ; -)

Для нагрузки звуковой сигнал и тому подобное, вы также можете использовать MIDI ... Возможно, это вход в блоге будет полезен, если вы решите попробовать.

Кроме того, ссылка из моего первоначального ответа может быть полезной в вашей настройке: Java Sound Resources: ссылки .

-121--3375352-

Pwstr будет WHAR_T string Picketer. Это строка Unicode (обычно UCS2) с каждым персонажем, принимающим 16 бит.

А CHAR * будет указатель 8 бит на персонаж. Это может быть ASCII, ANSI, UTF8 или один из сотен других кодировков. Хотя вам нужно только беспокоиться о кодировках, если вам нужна строка для удержания языков, отличных от английских или специальных символов.

В целом, API Windows - все Unicode внутри, поэтому большинство программистов Windows используют строки WCRA. Но STD :: string и CSTRING может быть Unicode, если правильные символы # определяются , поэтому ваш выбор между pwstr , STD :: string и CString будет вопросом предпочтений или Конвенции кодовой базы, с которой вы работаете.

6
ответ дан 6 December 2019 в 14:04
поделиться

Лучшее время для использования PWSTR - это если весь код, который вы редактируете / продлен, уже используют его. Обычно лучше продолжать кодировать в парадигме любого кода, над которым вы работаете.

Точно так же, если вы прилагаете тяжелое использование определенной библиотеки, которая определенно объявляет его строки, обычно лучше всего сохранить этот тип строки в вашем собственном коде. Таким образом, работа с Windows MFC, вы бы использовали CString. Win32 старого стиля обычно будет LPCTSTR и аналогичным.

Это часто в стиле, а не конкретным деталям реализации.

-121--3879795-

pwstr = указатель на широкую строку = wchar * в Windows

Windows SDK очень подвешен на Typedefs для типов и указателей на типы.

«Когда в Риме» - используйте любой тип строки проекта, который вы работаете над требуемым. Типы строк не важны, чтобы выделить или пытаться заставить свой истинный способ на то, что используется.

2
ответ дан 6 December 2019 в 14:04
поделиться

PWSTR - идентификатор где-то в . Лучше всего использовать при работе с функцией Windows API, которая требует такой вещи, и лучше избежать иначе.

1
ответ дан 6 December 2019 в 14:04
поделиться

Посмотрите на файл winnt.h в Windows SDK - вы увидите, что PWSTR - Typedef для WCRAL *. Это не макрос.

0
ответ дан 6 December 2019 в 14:04
поделиться

, когда какая библиотека, с которой вы работаете с хочется PWSTR . Это A, в соответствии с Конвенцией именования, используемой в Windows, указатель на строку широко-символов.

По умолчанию вы должны использовать std :: string / std :: wstring . Только когда вы интерфейс с кем-то ожидаете чего-то еще, вы должны изменить это.

Вы можете получить PCWSTR из STD :: WString с методом C_STR () . CString - MFC, если я вспомню.

4
ответ дан 6 December 2019 в 14:04
поделиться

Это из API Windows.

Я помню это так.

Это p -inointer до w .

Это будет использоваться в приложении Unicode. Его использование было бы, когда вы делаете звонки в Windows. Лучший тип будет на самом деле LPTSTR P -ointer к T --строку (либо Unicode или ANSI.

1
ответ дан 6 December 2019 в 14:04
поделиться

Лучшее время для использования pwstr - это если весь код, который вы редактируете / продлен, уже используют его. Обычно лучше продолжать кодировать в парадигме любого кода, над которым вы работаете.

Аналогично, если вы используете тяжелое использование конкретной библиотеки, которая определенно объявляет его строки, обычно лучше всего сохранить этот тип строки в вашем собственном коде. Таким образом, работа с Windows MFC, вы бы использовали CString. Win32 старого стиля обычно будет LPCTSTR и аналогичным.

Часто дело в стиле, а не конкретную детализацию реализации.

1
ответ дан 6 December 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: