Заблокирован
Автор FAQ
1

CString в OLECHAR

13.04.2011, 10:30. Показов 1529. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2011, 10:30
Ответы с готовыми решениями:

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

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

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

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

0
13.04.2011, 10:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2011, 10:30
Помогаю со студенческими работами здесь

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

C++ <cstring> strlen()
Народ, может ли функция strlen() обрабатывать тип не const char, а char ? компилятор ошибку выдаёт...

Сериализация CString
У меня есть структура Person: struct Person { //BOOST_SERIALIZATION_SPLIT_MEMBER(); public:...

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru