编译错误(C2440)使用CEFbrowser & VS2015

Compile Error(C2440)Using CEFbrowser & VS2015

那里。我是 CEF 浏览器的新手。 我正在开发 My CefBrowser 的下载模型。 我写了一些代码,但编译时出错。

 class CefClient : public virtual CefBase {
 public:
  ///
  // Return the handler for download events. If no handler is returned downloads
  // will not be allowed.
  ///
  /*--cef()--*/
  virtual CefRefPtr<CefDownloadHandler> GetDownloadHandler(){
     return this;
  }

但是 VS2015 说 C2440:

"return":cannot convert from 'CefClient *const' to 'CefRefPtr<CefDownloadHandler>'

我是新来的。当我将 return this 更改为 return null 时,它会运行,但 无法下载 。 我能做些什么来解决这个问题? 谢谢!

看起来您的 CefClient 必须继承自 CefDownloadHandler,即 class CefClient: public virtual CefBase, public CefDownloadHandler

CefDownloadHandler 继承后,从 CefClient 的实例返回 this 将正确适合 CefRefPtr<CefDownloadHandler>