Динамическое назначение событий OnDocumentComplete в конструкторе C++ для TCppWebBrowserC++

Программы на C++. Форум разработчиков
Anonymous
Динамическое назначение событий OnDocumentComplete в конструкторе C++ для TCppWebBrowser

Сообщение Anonymous »

Я использую Builder C++ начиная с версии 1.0 (1994 г.). Я использовал его до версии 2010. Недавно мы получили последнюю версию IDE "Embarcadero® C++Builder 12 Версия 29.0.50491.5718"
Раньше я создавал множество объектов динамически без каких-либо проблем, но теперь я хочу обновить старый проект и получаю ошибку, которую не могу исправить.
Я пытаюсь создать динамический TCppWebBrowser (используя IDE работает отлично)
Мой код в основном такой:

Код: Выделить всё

void __fastcall TFormAdmin::CppWebBrowser1DocumentComplete(TObject *Sender, LPDISPATCH pDisp,
Variant *URL)
{
//Here the event code
}
И в остальной части кода динамическое создание объекта:

Код: Выделить всё

TCppWebBrowser *CppWebBrowser1;
CppWebBrowser1=new TCppWebBrowser(this);
CppWebBrowser1->TOleControl::Parent = this;
CppWebBrowser1->OnDocumentComplete = CppWebBrowser1DocumentComplete;
Я получаю следующую ошибку в строке

Код: Выделить всё

CppWebBrowser1->OnDocumentComplete = CppWebBrowser1DocumentComplete;
[Ошибка bcc32] admin.cpp(78): E2034 Невозможно преобразовать 'void (_fastcall *
(_closure )(TObject *,IDispatch * ,Variant *))(TObject *,IDispatch
*,Variant *)' в 'TCppWebBrowserDocumentComplete'

Когда я использую этот код с помощью IDE (создание и назначение объекта и события во время разработки), работает отлично.
Прототип функции:

Код: Выделить всё

typedef void __fastcall (__closure * TCppWebBrowserDocumentComplete)(System::TObject * Sender,LPDISPATCH pDisp,VARIANT* URL);
Параметры те же, тип тот же.
Я не знаю, что делать. Я не понимаю, почему это работает во время разработки, а не программно. Любой совет приветствуется. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/787 ... webbrowser

Вернуться в «C++»