1444
Конференция C SoobCha
письмо # 1445
|
1446 |
|
Здравствуйте, Лагоша.Вы писали 13.06.2008, в 17:42 в письме <mid:list-9415831@nvptus.ru> из почтовой программы: The Bat! (v3.60.07) Professional ЛВГ> Как же победить ? В чем отличие BSTR от _bstr_t ??? ЛВГ> Как все таки засунуть в CString ? _bstr_t - это "обёртка" над BSTR. Просто "откастить" _bstr_t в BSTR не совсем верно. Для этого у него есть особые методы (см. comutil.h) // Get the physical BSTR // BSTR& GetBSTR() ; BSTR* GetAddress() ; Потому я бы сделал вместо w1 = (BSTR)pChild->nodeName; w2 = (BSTR)pChild->text; вот так: w1 = pChild->nodeName.GetBSTR(); w2 = pChild->text.GetBSTR(); зы: "прямой" каст (типа w1 = (BSTR)что-то) лучше вообще не использовать, а писать вместо этого reinterpret_cast<BSTR>(что-то). В этом случае компилятор сразу выкинет варнинг по поводу не совсем корректного преобразования типа. В данном случае - внутри _bstr_t первым членом хранится указатель на экземпляр внутреннего класса, у которого, в свою очередь, первым членом находится BSTR. Т.е. если хочется совсем "по-хакерски", то нужно _bstr_t кастить в BSTR* (напрямую), а не в BSTR. Но это чисто умозрительно. Если бы я увидел подобное в реальном коде, я бы дал по шее программисту, который так написал. зыы: MSDN в помощь! -- С уважением, Alexey N. Vinogradov (mailto:klirik@narod.ru) http://klirik.narod.ru За последние сутки получено ( байт) "хамов" и ( байт) "спамов". |
1444
|
1446 |
|
|
|
|