C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 179 - Немного о классе CString и LPCTSTR / MFC шаг за шагом / Visual C++

Шаг 179 - Немного о классе CString и LPCTSTR

Привет Артем.
Ответь пожалуйста, в письме, как используется 
этот чертов оператор LPCTSTR класса CString.
Ну ОЧЕНЬ надо.

С уважением Дмитрий.

Класс CString появился как альтернативный метод работы со строками типа char buffer[100]. При этом при его создании учитывалось, что многие функции уже созданы и необходимо будет обеспечить поддержку старого подхода основанного на указателях строк. Рассматривая данный указатель давайте посмотрим историю его появления.

typedef LPCSTR LPCTSTR;
typedef CONST CHAR *LPCSTR, *PCSTR;

Вот это просто указатель на строку. Только если Вы обратите внимание на буковку C в строке LPCTSTR этот указатель именно CONST. В MSDN описано, что LPCTSTR это 32 битный указатель на строку для совместимости с UNICODE и DBCS. UNICODE строки отличаются от обычных строк вот чем:

wchar_t - 16 бит
char	- 8  бит	

Проще всего воспринимать этот указатель как аналог указателя в Win32

 LPCSTR (Win32 data type)  - LPCTSTR 

32 битный указатель на строку. Использовать его можно также как и используется указатель на буфер. Вот пример кода.

char buffer[100];
strcpy(buffer,"Hello World!\n");
LPCTSTR st=buffer;
CString s(st);
AfxMessageBox(s);

Кроме того в классе CString есть оператор LPCTSTR

operator LPCTSTR ( ) const;

Этот оператор позволяет получить доступ к строке в стиле C. Возвращается только указатель. Вот пример кода

CString s;
LPCTSTR lp;
s="Hi";
lp = (LPCTSTR) s;
printf(lp);
return 0;

| |
Автор Каев Артем.
[AD]