안녕하십니까.
FireBreath 플러그인을 작성하고 있습니다. 작은 문제는 내 가난한 C++ 지식으로 인해 발생했습니다. 아래 코드를 참조하십시오. HWND
을 반환 기능 FB::PluginWindowWin::getBrowserHWND()
이 GetWindowRect(hWnd, &rect)
기능에 HWND
로 일하고 싶어하지 않는 이유회원에 정적 링크가 없습니다. 오류 C2352
나는 이해할 수 없다.
컴파일러는 FB::PluginWindowWin::getBrowserHWND()
에서 FB
을 강조하고 "회원에 비 정적 링크가 아니라 설정 개체를 지정해야합니다"라고 나에게 이야기한다 (이 메시지는 러시아어에, 내 번역 한 것입니다,하지만 난 여전히 같은 의미를 가지고 생각)
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();
당신이 내게 줄 수 이러한 객체의 예제 코드는 무엇입니까? –
저는 Firebreath를 사용한 적이 없기 때문에 매우 구체적 일 수는 없습니다. Firebreath 문서에서 몇 가지 샘플 코드를 찾아서 따라야한다고 생각합니다. 그러나 http://colonelpanic.net/2010/11/firebreath-tips-drawing-on-windows/에서 블로그를 보면 FB는 이벤트 처리기를 호출하고 'PluginWindow'에 대한 포인터를 전달해야합니다. 그런 다음'PluginWindowWin'으로 형변환하고'getBrowserHWND()'를 호출 할 수 있습니다. 나는 당신이'PluginCore'를 확장하는 클래스를 작성해야한다고 생각합니다. 그렇다면 메소드 중 하나에서'this-> getWindow()'를 호출하여'PluginWindow'를 얻을 수 있습니다. 희망이 도움이됩니다. –
Thx Nate, 그것을 망쳐려고 노력할 것입니다. –