Re: вернуть строку из Invoke (bcb)
От: Lexey Россия  
Дата: 10.01.02 19:49
Оценка:
Здравствуйте twask, Вы писали:

Думаю, что неправильны у тебя вот эти 2 строчки:

T> V_BSTR(pVarResult) = AnsiToOLESTR((char *)_GetReminderDate(Idx).c_str());


T> V_BSTR(pVarResult) = AnsiToOLESTR((char *)_GetReminderDescr(Idx).c_str());


Ты возвращает указатель на OLESTR, а не BSTR. OLESTR по структуре выглядит также, но память под BSTR распределяется совсем иначе.

T>то в диалоге появляется результат работы только одной функции (почему-то именно GetReminderDate, независимо от порядка вызова). очевидно, что грабли с распределением памяти, но как их обойти я не знаю. что делать?


Замени это дело на:
V_BSTR(pVarResult) = SysAllocString(_GetReminderDate(Idx).c_str()) (ну и вторую соответственно).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.