Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
-=ЮрА=-
Заблокирован
Автор FAQ
#1

CString в OLECHAR - C++

13.04.2011, 10:30. Просмотров 1049. Ответов 0
Метки нет (Все метки)

Столкнулся с проблеммой при добавлении в Storage файлов с русскими именами pStorage->CreateStream возвращает ошибку о том что имя элемента не правельное
В msdn-е написано что при создании потока его имя должно иметь тип OLECHAR подскажите как сконвертировать CString в OLECHAR???

Вот так получал OLECHAR в программе - для английских имён всё норм работает, сам тестил.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
LPWSTR CStorage::_L(LPCTSTR str)
{
    long uLen = MultiByteToWideChar(CP_ACP, 0, str,   -1,  NULL, NULL);
                MultiByteToWideChar(CP_ACP, 0, str, uLen, lpszW = 
                    (WCHAR *)realloc((void *)lpszW,sizeof(WCHAR)*uLen), 
                    uLen);
    return lpszW;
}
 
HRESULT CStorage::StgAddFile(LPCTSTR szName, IStorage * pStorage, IStream ** lpStream)
{
    hRes = pStorage->CreateStream
                (
                    _L(szName),
                    STGM_CREATE             | 
                    STGM_DIRECT             |
                    STGM_READWRITE          | 
                    STGM_SHARE_EXCLUSIVE/*  |
                    STGM_DELETEONRELEASE*/,
                    0, 0, lpStream
                );
    return hRes;
}
Добавлено через 19 часов 30 минут
Решение нашёл сам - всё дело в числе символов в имене файла!Все приведенные выше функции 100% работоспособны, если кому надо юзайте на здоровье...
http://www.cyberforum.ru/cpp/thread45515.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2011, 10:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос CString в OLECHAR (C++):

CString::Format() и преобразование double в CString
Вот фрагмент программы: void CMy6_1Dlg::OnRadio3() { CString s; int...

Cstring
Помагите!!! нужно написать программу которая переводит вещественное число в...

CString(MFC)
Здравствуйте! пишу программу, появляются проблемы со строкой типа CString.......

Class CString в VC++8.0
Как передать переменную типа CString из .exe в dll

Проблема с CString
Есть проект на с++ вс2005. Получил его уже будучи откомпилированым (консольное...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2011, 10:30
Привет! Вот еще темы с решениями:

Split CString
В Qt был метод split, а как рассплитить строки в библиотеке MFC? Пробегаюсь в...

CString в консоль
Как вывести CString в консоль? CString s="string",ss="stri"; ss=ss+s;...

Char * to CString
Добрый день, пытаюсь конвертить char* в Cstring у CString имеется...

Сериализация CString
У меня есть структура Person: struct Person {...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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