Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
#1

WideCharToMultiByte и std::string - C++

08.06.2012, 20:18. Просмотров 1096. Ответов 0
Метки нет (Все метки)

Легален ли такой код? На мой взгляд, все правильно, но программа в 3 случаях из 1000 портит память, если в коде есть эта функция.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
std::string tomb(const std::wstring &str, size_t code_page)
 {  
  int cnt = WideCharToMultiByte((UINT)code_page, NULL, str.c_str(), -1, 0, 0, NULL, NULL);
  
  if(!cnt)
   return std::string();
 
  std::string f(cnt);
 
  if(!WideCharToMultiByte((UINT)code_page, NULL, str.c_str(), -1, &f[0], cnt, NULL, NULL))
   return std::string();
  
  f.resize(f.length()-1);
 
  return f;
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2012, 20:18     WideCharToMultiByte и std::string
Посмотрите здесь:

std::string, std::fstream, ошибка кучи - C++
где то начало вылетать при операции += с локальной переменной std::string. Заменил на свой qString. Замечательно, то же самое... ошибка при...

std:string - C++
1. Поддерживает ли этот класс сравнение целиком строк? Каков синтаксис сравнения строк? 2. Поддерживает ли этот класс конкатенацию? Каков...

std::string - C++
Господа, подскажите где можно поглядеть методы string-a литературы никакой под рукой нет, а гуглить в лоб что-то результаттов не дает. ...

std::string - C++
Здравствуйте! У меня есть std::vector<std::string> Подскажите пожалуйста как быстро и красиво можно перевести i-тый элемент вектора в...

Std::string - C++
никак не пойму чем отличаются методы append и assign у std::string?

char* vs std::string - C++
При чтении чужих сорцов, обратил внимание, что в роли аргументов для функций/методов, как правило используются указатели на массивы чаров,...

std::string to SCtring - C++
После выполнения этого кода выводится не "123" а какие-то каракули как это исправить? string s = "123"; ...

std::string в char* - C++
Можно ли привести std::string к указателю на нуль-терминальную строку? Как?

std::string, потоки - C++
Доброго времени суток! Использую такую конструкцию: while(...) { while(getline(dic, buf2)) { if (buf2 <...

int to std::string - C++
Не подскажите как перевести int в std::string

Std::string compare - C++
#include <cstring> #include <iostream> int main() { std::string a = "aa"; std::string b = "ab"; std::cout <<...

PTCHAR в std::string - C++
Никак не могу парсить переменную Line. Пишет - выражение должно иметь тип класса PTCHAR line = wcstok_s(buffer, TEXT("\r\n"), &context);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru