Ошибка C++Builder 12 в динамическом назначении события OnDocumentComplete для TCppWebBrowserC++

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

Сообщение Anonymous »

Я использую C++Builder начиная с версии 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 ... -tcppwebbr

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