Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> >>Извращение с Win32, Работа со строками С++ WinAPI 
:(
    Опции темы
Killerman
Дата 11.3.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Я разрабатывал небольшую программку под Win32, где хотел рисовать в окне текст, введенный с клавиатуры.
Я использовал класс СString. Но потом мне понадобилось преобразовать текст в число. Ну и наоборот.
И тут я вспомнил про С# и С++ под CLR и обычный способ сделать это через Convert.ToString(.......)
или Convert.Toint(...) (Convert::ToString(.......) и Convert::ToInt(.......) для С++ под CLR)

Тоесть использовать функции управляемого кода (Фреймворков) в проекте под Win32.
Но насколько я понимаю С++ под CLR и Win32 несовместимы?
PM MAIL   Вверх
Rififi
Дата 11.3.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 2
Всего: 36



Killerman, 
оно совместимо, но тащить за собой ~260-mb (размер инсталлера .net 3.5) для преобразования string <-> int - это мощнО :gigi:

используй стандартные библиотечные функции atoi, itoa etc
PM MAIL   Вверх
Killerman
Дата 11.3.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



А мне так нравилась эта конвертация.  smile  Хоть чтото полезное хотел вытянуть из Фреймворков  smile 
PM MAIL   Вверх
GremlinProg
Дата 11.3.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



не понимаю, чем не устраивает STL-то совместно с sprintf-sscanf

и гибче лобовых преобразований Toint, ToString
и понятнее: формат чтения и записи не рвется среди кода
и таскать за собой не нужно ничего

пользуйтесь поиском, пожалуйста:
http://forum.vingrad.ru/index.php?showtopi...t&p=1678373
со scanf дела примерно аналогично, только нужно приоткрыть некоторые CRT :
Код

extern "C"{
    int __cdecl _winput_s_l(FILE*,const wchar_t*,localeinfo_struct*,va_list);
    int __cdecl _input_s_l(FILE*,const unsigned char*,localeinfo_struct*,char*);
}
inline int wcsscanv(LPCWSTR lpszInput,LPCWSTR lpszFormat,va_list args){
    FILE file;
    file._flag    = _IOREAD|_IOSTRG|_IOMYBUF;
    file._ptr    = file._base = (char*)lpszInput;
    file._cnt    = ((int)wcslen(lpszInput)) * sizeof(*lpszInput);
    return _winput_s_l(&file,lpszFormat,NULL,args);
}
inline int wcsscan(LPCWSTR lpszInput,LPCWSTR lpszFormat,...){
    va_list args;
    int retval;
    va_start(args,lpszFormat);
    retval    = wcsscanv(lpszInput,lpszFormat,args);
    va_end(args);
    return retval;
}
inline int mbsscanv(LPCSTR lpszInput,LPCSTR lpszFormat,va_list args){
    FILE file;
    file._flag    = _IOREAD|_IOSTRG|_IOMYBUF;
    file._ptr    = file._base = (char*)lpszInput;
    file._cnt    = ((int)strlen(lpszInput)) * sizeof(*lpszInput);
    return _input_s_l(&file,(const unsigned char*)lpszFormat,NULL,args);
}
inline int mbsscan(LPCSTR lpszInput,LPCSTR lpszFormat,...){
    va_list args;
    int retval;
    va_start(args,lpszFormat);
    retval    = mbsscanv(lpszInput,lpszFormat,args);
    va_end(args);
    return retval;
}

это было для 2008 студии, для 2005 семантика опорных функций немного проще:
Код

extern "C"{
    int __cdecl _input(FILE*,const unsigned char*,va_list);
    int __cdecl _winput(FILE*,const wchar_t*,va_list);
}

а остальное - то же самое


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.