Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.25;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
7-81505
e_Dimon
2002-05-05 12:20
2002.07.25
Энергосберегающие функции.....


1-81334
Начинающий програмер
2002-07-12 18:18
2002.07.25
INI или что-нибудь подобное


1-81254
SemFLY
2002-07-14 20:37
2002.07.25
DOS-Окно и информация в нём.


7-81495
MisterBin
2002-05-06 09:34
2002.07.25
Как сделать, чтобы не показывались скрытые файлы


3-81174
NetWanderer
2002-07-04 11:41
2002.07.25
Проблемы с видимостью транзакций.