char2wchar

Тема в разделе "WASM.BEGINNERS", создана пользователем JCronuz, 11 окт 2009.

  1. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Здраствуйте!
    Как в ring0 сконвертировать строку из (char *) в wchar?
     
  2. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    RtlAnsiStringToUnicodeString ?
     
  3. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Оно самое спасибо, искал среди wsxxxx и нашел mbstowcs_s

    Код (Text):
    1. size_t wcstombs(
    2.    char *mbstr,
    3.    const wchar_t *wcstr,
    4.    size_t count
    5. );
    6.  
    7.  char *orig = "Hello, World!";
    8.     cout << orig << " (char *)" << endl;
    9.  
    10.     // Convert to a wchar_t*
    11.     size_t origsize = strlen(orig) + 1;
    12.     const size_t newsize = 100;
    13.     size_t convertedChars = 0;
    14.     wchar_t wcstring[newsize];
    15.     mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
    16.     wcscat_s(wcstring, L" (wchar_t *)");
    17.     wcout << wcstring << endl;
    RtlAnsiStringToUnicodeString хоть выглядит по человечески!
     
  4. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    нужна функция сравнения строки в wchar с char* имеется таковая?
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.564
    Адрес:
    Russia
    Имеется, например вот:
    Код (Text):
    1. BOOLEAN KernelStrCmpI(PUNICODE_STRING pusSource,PCHAR pszDest)
    2. {
    3.     ANSI_STRING as;
    4.     NTSTATUS status;
    5.  
    6.     status = RtlUnicodeStringToAnsiString(&as,pusSource,TRUE);
    7.     if (STATUS_SUCCESS == status)
    8.     {
    9.         DbgPrint("Compare String: str1 = <%s>, str2 = <%s>", as.Buffer, pszDest);
    10.         if (!_stricmp(pszDest,as.Buffer))
    11.             return TRUE;
    12.         else
    13.             return FALSE;
    14.     }
    15.     else
    16.     {
    17.         DbgPrint("Error RtlUnicodeStringToAnsiString status = %x", status);
    18.     }
    19.  
    20.     return FALSE;
    21. }
     
  6. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    TermoSINteZ То что нужно