Re: Интересный момент?
От: Аноним  
Дата: 16.12.05 18:01
Оценка: -2
Здравствуйте, Denwer, Вы писали 2.5 года тому назад:


D>Просматривая исходники MFC заметил следующее:

D> return S_OK == spDoc->put_designMode(L"On") ? TRUE : FALSE; // вот тут собака порылась


D>Это определение:


D>virtual HRESULT STDMETHODCALLTYPE put_designMode (BSTR v) = 0


D>Разве можно передавать L"text" там где BSTR? Ведь для передачи BSTR в начале стоит счетчик, а в примере передается обычная строка(обячная 2-х байтная конечно) БЕЗ счетчика. Ну не может же тут вызываться что то скрытно, какое нибудь преобразование?


Если Вы посмотрите на то, как реализованы строки BSTR в C++, то увидите, что они представляют собой 4-х байтные указатели на строки 2-х байтных символов, завершающиеся 0x0000. В C++ НИКАКИХ счетчиков нет. Насколько я понимаю, они могут подсчитываться и передаваться при маршалинге. Поэтому ничего удивительного в тексте MFC нет.

Ответ, конечно, запоздалый, но мне Ваше письмо попалось на глаза только сейчас.

GREK
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.