Я пытался заставить Awesomium :: WebViewListener работать, но всякий раз, когда я пытаюсь выделить объект Listener, я получаю сообщение об ошибке «Тип поля« Listener »- абстрактный класс».
Вот мой код:
class Listener : public Awesomium::WebViewListener
{
public:
void onCallback(Awesomium::WebView* caller,
const std::wstring& objectName,
const std::wstring& callbackName,
const Awesomium::JSArguments& args)
{
std::cout << "Hello!" << std::endl;
}
};
// In the GUI class
Listener listener; // Field type 'Listener' is an abstract class
view->setListener(&listener);
Как я должен установить слушателя, если я не могу выделить объект слушателя? Я попытался использовать boost :: shared_ptr, который не выдает никаких ошибок, но функция onCallback () никогда не вызывается.
Это может быть два варианта:
Awesomium::WebViewListener
содержит более одного абстрактного метода. Если это так — вы должны реализовать их все для создания экземпляра производного класса `Listener ‘(об этом сказал bash.d)Awesomium::WebViewListener::onCallback
Список аргументов должен быть точно равен вашему. Если не так, то ты добавленной этот метод для Listener
, но не реализована базовая аннотация onCallback
Других решений пока нет …