AnsiString -> LPCWSTR

Discussion in 'LANGS.C' started by Keva, Jun 26, 2007.

  1. Keva

    Keva New Member

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    130
    Есть такая функция CertFindCertificateInStore, она предпоследним параметром принимает значение типа LPCWSTR, этот параметр должен содержать CN из сертификата. Есть строка типа AnsiString в которой и содержиться этот CN. Если в строке CN на русском то сертификат не находится, если на английском то все в порядке. В чем может быть дело?

    Code (Text):
    1. wchar_t buf[50];
    2.         AnsiString Subject="Иванов Иван Иваныч";
    3.         swprintf(buf,L"%S",Subject);
    4.         LPCWSTR qwe=buf;
    5.  
    6.         //получаем контекст сертификата        
    7.         pSignerCert = CertFindCertificateInStore(
    8.                 hStoreHandle,
    9.                 MY_ENCODING_TYPE,
    10.                 0,
    11.                 CERT_FIND_SUBJECT_STR,
    12.                 qwe,
    13.                 NULL);
    причем если переменную qwe инициализировать следующим образом:
    Code (Text):
    1. LPCWSTR qwe=L"Иванов Иван Иваныч";
    то все в порядке сертификат находится.
    Заранее благодарен.
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Blog Posts:
    0
    Joined:
    Sep 11, 2006
    Messages:
    1,426
    русские символы кодируются юникодом, LPCWSTR именно для этого.
     
  3. Keva

    Keva New Member

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    130
    Ну этот кусок не работает с русскими буквами!
     
  4. Booster

    Booster New Member

    Blog Posts:
    0
    Joined:
    Nov 26, 2004
    Messages:
    4,860
    Keva

    Ну попробуй WideString вместо AnsiString.
    Либо придётся переконвертить из Ansi в Unicode.
     
  5. Nouzui

    Nouzui New Member

    Blog Posts:
    0
    Joined:
    Nov 17, 2006
    Messages:
    856
    а что такое AnsiString? это не билдер?
     
  6. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    Nouzui
    Билдер.