С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
-=ЮрА=-
Заблокирован
Автор FAQ
#1

CString в OLECHAR - C++

13.04.2011, 10:30. Просмотров 1012. Ответов 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% работоспособны, если кому надо юзайте на здоровье...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2011, 10:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CString в OLECHAR (C++):

CString buff = "aaa" + "bbb" - C++
Хочется одним оператором конкатенировать несколько подстрок CString buff = "aaa" + "bbb" компилятор выдает error C2110: cannot add two...

CString::Format() и преобразование double в CString - Visual C++
Вот фрагмент программы: void CMy6_1Dlg::OnRadio3() { CString s; int i=m_list1.GetCount(); int a; int k=0; float...

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

CString(MFC) - Visual C++
Здравствуйте! пишу программу, появляются проблемы со строкой типа CString.... Вообще, есть ли ли функция, позволяющая узнать длину строки...

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

CString, MFC - Visual C++
Здавствуйте! Как из объекта CString из MFC выбрать подстроку? Например, от последнего пробела и до конца строки? и наоборот - от начала -...

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

mfc CString ^ - Visual C++
Добрый день. Создал приложение MFC c++. Есть необходимость считать содержимое поля для ввода текста EGIT CONTROL. Создана переменная-член...

Проблема с CString - Visual C++
Есть проект на с++ вс2005. Получил его уже будучи откомпилированым (консольное приложение). В нем много функций использующих CString. все...

CString в консоль - Visual C++
Как вывести CString в консоль? CString s="string",ss="stri"; ss=ss+s; cout<<ss; Так выводит адрес строки...

fgets и CString - C++
Здравствуйте, У меня возник вопрос, проконсультируйте, пожалуйста, что можно сделать в этой ситуации? Нужно прочитать строчку...


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

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

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