Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Конвертация LPSTR, LPCSTR, LPWSTR в обычный String

17K
27 декабря 2006 года
DrEvil
11 / / 27.12.2006
Собственно говоря топег. Ох и намучился я.
Курил МСДН, не помогло :(
309
27 декабря 2006 года
el scorpio
1.1K / / 19.09.2006
Во-первых, таких типов нет. Есть переопределённые указатели на базовые типы char и wchar_t. Всё остальное - от Лукавого (он же "БГ" :D )
Во-вторых, я уже говорил, что существование "указательных" типов (LPSTR и иже с ними) изрядно путает начинающих программистов. Более того, вполне возможно, что и существуют они только для усложнения понимания кода (объективных причин для написания LPSTR вместо char* я не вижу).
В-третьих, что подразумевается под "обычным" String? Тип "string" существует в Delphi (он же "паскаль").
В MSVC (который здесь обсуждается) есть класс CString, который должен иметь кучу методов для взятия информации из указателя на char
В BCB (который обсуждается не здесь) есть класс AnsiString, который имеет конструктор с параметром char*. Соответственно можно делать простое присваивание - приведение выполнится автоматически.
В самом C++, на котором программируют с использованием STL, также есть класс string. Как с ним работать, пусть объяснят мастера "классического C++".
5.9K
27 декабря 2006 года
Zushenskiy
161 / / 29.06.2006
LPSTR lpVar = "something";
string str = lpVar;
LPWSTR wlpVar = L"something";
wstring wstr = wlpVar;

LPSTR это char*
LPCSTR это const char*
LPWSTR это wchar_t*


это типы данных для WinApi и сделанно это изза того что у каждого языка спецификация типов данных своеобразна а функции WinApi одни. поетому для совместимости языка и WinApi переопределяются только типы
8.9K
27 декабря 2006 года
Kap
77 / / 10.09.2006
LPSTR- Long pointer to string... и так далее.
63
28 декабря 2006 года
Zorkus
2.6K / / 04.11.2006
Цитата: el scorpio

В самом C++, на котором программируют с использованием STL, также есть класс string. Как с ним работать, пусть объяснят мастера "классического C++".


Работать с адскими типами лучше всего через

 
Код:
#include <tchar.h>

 --//---
    MessageBox(NULL,_T("Release Of DC And RC Failed."),
   _T("SHUTDOWN ERROR"),MB_OK | MB_ICONINFORMATION);
- так я например opengl писал. Я имею в виду, работу с WinAPI если.
Подробное описание макросов локализации на сайте MS есть где то.
Через префикс L лучше не писать. А насчет STL -ского класса - это другой разговор:)
309
28 декабря 2006 года
el scorpio
1.1K / / 19.09.2006
Цитата:
это типы данных для WinApi и сделанно это изза того что у каждого языка спецификация типов данных своеобразна а функции WinApi одни. поетому для совместимости языка и WinApi переопределяются только типы


Я и говорю - переопределённые типы от Билла Гейтса :D
Хотя и не только от него - во многих библиотеках С++ для чуть ли не для каждой структуры пишется строка typedef TStruct* PStruct :(

17K
29 декабря 2006 года
DrEvil
11 / / 27.12.2006
Цитата: Zushenskiy
LPSTR lpVar = "something";
string str = lpVar;
LPWSTR wlpVar = L"something";
wstring wstr = wlpVar;

LPSTR это char*
LPCSTR это const char*
LPWSTR это wchar_t*


это типы данных для WinApi и сделанно это изза того что у каждого языка спецификация типов данных своеобразна а функции WinApi одни. поетому для совместимости языка и WinApi переопределяются только типы




Софсем забыл сказать, что пишу на VC++ 2005 и такие вещи чет не прокатывают :(

LPSTR str1 = "bla bla"; // все Ок
String^ str2 = str1; // бум - ошибка С2440

240
29 декабря 2006 года
aks
2.5K / / 14.07.2006
так ты забыл сказать самое главное. Пишешь не на С++ использую компилятор VC++ 2005, а на managed C++. Это тебе нада в раздел .Net
63
29 декабря 2006 года
Zorkus
2.6K / / 04.11.2006
Цитата: DrEvil
Софсем забыл сказать, что пишу на VC++ 2005 и такие вещи чет не прокатывают :(
LPSTR str1 = "bla bla"; // все Ок
String^ str2 = str1; // бум - ошибка С2440


А так, как я показал, через макросы? тоже не катит?

2.0K
29 декабря 2006 года
Dstr
158 / / 27.04.2006
Описание:
function wvsprinf(Output, Format, ArgList: PChar): Integer;

Фоpматиpует и записывает в буфеp последовательность символов.

Паpаметpы:
Output: Буфеp для пpиема отфоpматиpованных символов.
Format: Стpока упpавления фоpматом.
ArgList: Массив аpгументов для стpоки упpавления фоpматом.

Возвpащаемое значение:
В случае успешного завеpшения - число символов в Output, не считая 0; в пpотивном случае - меньше, чем длина Format.

Чем плох?В Format можно вставить все што угодно,а аутпут будет char...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог