Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ActiveX для ASP (utf-8 -> Unicode), MultiByteToWideChar 
:(
    Опции темы
ReFleX
Дата 11.12.2005, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2-й раз в жизни сожусь за Microsoft Visual C++ 6.0

Нужна помощь в создании простого ActiveX для ASP, точнее переконвертировать данные из UTF-8 в Unicode

Сам ActiveX я создал.

Код

STDMETHODIMP CUpper1::ToUpper(BSTR bstr, BSTR *pbstrRetVal)
{
        // validate parameters
        if (bstr == NULL || pbstrRetVal == NULL)
           return E_POINTER;

       // Create a temporary CComBSTR
       CComBSTR bstrTemp(bstr);

       if (!bstrTemp)
           return E_OUTOFMEMORY;

       // Make string uppercase
       //wcsupr(bstrTemp);


        int wbuflen = MultiByteToWideChar(
            CP_UTF8,
            MB_PRECOMPOSED,
            bstrTemp,
            -1,
            0,
            0); // Тут пишит ошибку!!!!!!!!!
        WCHAR * wbuf = new WCHAR[wbuflen];



       // Return m_str member of bstrTemp
       *pbstrRetVal = bstrTemp.Detach();

    return S_OK;
}



А ошибку выдаёт такую:

C2664: 'MultiByteToWideChar' : cannot convert parameter 3 from 'class ATL::CComBSTR' to 'const char *'

Прошу помоч, кто знает в чём тут дело и что я сделал не так...
PM WWW   Вверх
ReFleX
Дата 12.12.2005, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

STDMETHODIMP CUpper1::ToUpper(BSTR bstr, BSTR *pbstrRetVal)
{
        // validate parameters
        if (bstr == NULL || pbstrRetVal == NULL)
           return E_POINTER;

       // Create a temporary CComBSTR
       CComBSTR bstrTemp(bstr);
        
       if (!bstrTemp)
           return E_OUTOFMEMORY;

        WCHAR * wbuf = new WCHAR[bstrTemp.Length()];

        int wbuflen = MultiByteToWideChar(
            CP_UTF8,
            MB_PRECOMPOSED,
            (LPCSTR)bstrTemp.m_str,
            bstrTemp.Length(),
            wbuf,
            sizeof(wbuf) / sizeof(wbuf[0]) );

       *pbstrRetVal = wbuf;


    return S_OK;
}


Компленировать получилось без ошибок но тут походу есть всё равно ошибки, неужели никто не может помоч smile
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




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


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

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