Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];

Вниз

string -> BSTR   Найти похожие ветки 

 
volph   (2002-07-13 21:36) [0]

на C++ написал COM-объект, есть у меня там некий метод
STDMETHODIMP CComponent::getData(BSTR path, BSTR* result)

как в делфи передать параметр из string в виде BSTR ???


 
Макс Черных   (2002-07-13 22:51) [1]

function StringToOleStr(const Source: string): PWideChar;

BSTR есть то же самое что и PWideChar


 
volph   (2002-07-13 23:41) [2]

Все наврено хорошо бы было, если бы оно не ругалось на передачу такого параметра

[Error] datas.pas(154): Type not allowed in Variant Dispatch call


 
Юрий Зотов   (2002-07-14 01:56) [3]

Дык... а что же все-таки написано в строке 154 модуля datas?
А то очень трудно читать на расстоянии...


 
awaken   (2002-07-14 02:08) [4]

у меня тоже глюки с этим делом при передаче строк.
есть COM-объект на C++, принимающий и возвращающий BSTR
при возврате в программу на Delphi передается мусор.
убрал dispinterface в C++, оставил vtable-интерфейс
после этого заработало. почему в первом случае не работало - загадка





 
volph   (2002-07-14 09:32) [5]

А вот что в 54-й строке написано:
RichEdit1.Text := OBJ.getData(StringToOleStr(path));

причем если я пишу:
RichEdit1.Text := OBJ.getData("data");

то все пашет на ура


 
kig   (2002-07-14 13:35) [6]

А так катит?

RichEdit1.Text := OBJ.getData(WideString(path));



 
volph   (2002-07-14 15:27) [7]

Гы! Катит!!!!!!


 
kig   (2002-07-15 11:04) [8]

Взгляните раздел MSDN
Platform SDK: Automation
String Manipulation Functions

Все вопросы отпадут и увидите, чем отличаются BSTR от POLECHAR, хотя на данные они указывают одинаково
(typedef OLECHAR * BSTR)


 
Дмитрий Баранов   (2002-07-15 11:36) [9]

Кусок кода на IDL приведите, пожалуйста.


 
kig   (2002-07-15 11:51) [10]

Да из этого
STDMETHODIMP CComponent::getData(BSTR path, BSTR* result)
и вызова
getData(BSTR path, BSTR* result) - т.е. не PROPGET

процентов на 97%
idl выглядит так

HRESULT getData([in] BSTR path, [out, retval] BSTR* result)

а импорт в Д

function getData(const path: WideString): WideString; safecall;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
4-81509
savva
2002-05-20 14:12
2002.07.25
CertFindCertificateInStore && CryptApi v.2


1-81226
Sour
2002-07-14 12:27
2002.07.25
Отенки цвета


1-81256
Lego
2002-07-12 01:28
2002.07.25
Как у DBGrid1 указать Title из Edit1 ?


3-81191
Дундук
2002-07-05 05:49
2002.07.25
Обработка клавиши TAB в DBGrid


1-81316
Andy BitOff
2002-07-12 15:43
2002.07.25
Чтение файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский