Win32 development-String related datatypes in C++
Я собирался начать с разработки приложений Win32. Прежде чем я смог открыть первое окно, я был готов сдаться! Я был ошеломлен количеством типов данных, о которых вам нужно знать, прежде чем вы сможете написать простой WinMain и WndProc. (если вы, конечно, не копируете-вставляете!)
Особенно эти -
LPSTR
LPCSTR
LPWSTR
LPCWSTR
Может ли кто-нибудь указать мне на правильную статью, которая объясняет это в отношении программирования Win32? О каких из них я должен знать, какие нужны в какой ситуации, Когда перейти на Unicode, что такое многобайтовый набор символов и все связанные с этим вещи.
И преобразование в / из этих типов данных в char* и char[] и тому подобное, при вызове функций Win32 API-это боль.
Все это так запутанно.
Спасибо за помощь.
1 ответ:
Схема относительно проста:
LPSTR = строка с нулевым окончанием
char
LPCSTR = константа нулевая строка
char
(C = = константа)LPWSTR = строка с нулевым окончанием
wchar_t
(W = = широкий символ)LPCWSTR = константа нулевая строка
wchar_t
(C и W)Подробности и пояснения см. напр. http://www.codeproject.com/KB/string/cppstringguide1.aspx
Связанная статья также содержит советы, когда использовать Unicode в вашем приложении, а когда нет.