再会。
我正在用 FireBreath 编写一个插件。由于我的 C++ 知识贫乏,出现了一些小问题,请参阅下面的代码。
我不明白,为什么FB::PluginWindowWin::getBrowserHWND()
返回的函数HWND
不想像函数一样HWND
工作GetWindowRect(hWnd, &rect)
。
编译器强调FB
并FB::PluginWindowWin::getBrowserHWND()
告诉我“必须指定成员上的非静态链接而不是设置对象”(这是我的翻译,消息是俄语,但我相信它仍然具有相同的含义)
得到这个错误:
Error C2352 FB::PluginWindowWin::getBrowserHWND:illegal call of non-static member function
代码:
TestPlugin.cpp
#include "Win/PluginWindowWin.h"
#include "JSObject.h"
#include "variant_list.h"
#include "DOM/Document.h"
#include "global/config.h"
#include <Windows.h>
#include "TestPluginAPI.h"
///////My Functions////////
FB::variant PosTest()
{
RECT rect;
HWND hWnd;
hWnd = FB::PluginWindowWin::getBrowserHWND();
if(GetWindowRect(hWnd, &rect))
{
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;
int left = rect.left;
return left;
}
}
TestPlugin.h
#include "Win/PluginWindowWin.h"
#include <string>
#include <sstream>
#include <boost/weak_ptr.hpp>
#include "JSAPIAuto.h"
#include "BrowserHost.h"
#include "TestPlugin.h"
#include <Windows.h>
/////Declarations/////
//Rect
BOOL WINAPI GetWindowRect(HWND hWnd, LPRECT lpRect);
//Pos Test
FB::variant PosTest();