LNK 2001, неразрешенный внешний элемент в структуре ppr структуры NPPluginFuncs как статический член класса [duplicate]

0

В моем проекте VS2010 DLL у меня есть ошибка при компиляции этого проекта: LNK 2001 unresolved external на pFuncs моего класса:

class Foo
{
    // ...
    static NPPluginFuncs * pFuncs;
    // ...
};

Здесь struct, определенная в npfunctions.h:

typedef struct _NPPluginFuncs {
  uint16_t size;
  uint16_t version;
  NPP_NewProcPtr newp;
  NPP_DestroyProcPtr destroy;
  NPP_SetWindowProcPtr setwindow;
  NPP_NewStreamProcPtr newstream;
  NPP_DestroyStreamProcPtr destroystream;
  NPP_StreamAsFileProcPtr asfile;
  NPP_WriteReadyProcPtr writeready;
  NPP_WriteProcPtr write;
  NPP_PrintProcPtr print;
  NPP_HandleEventProcPtr event;
  NPP_URLNotifyProcPtr urlnotify;
  void* javaClass;
  NPP_GetValueProcPtr getvalue;
  NPP_SetValueProcPtr setvalue;
  NPP_GotFocusPtr gotfocus;
  NPP_LostFocusPtr lostfocus;
  NPP_URLRedirectNotifyPtr urlredirectnotify;
  NPP_ClearSiteDataPtr clearsitedata;
  NPP_GetSitesWithDataPtr getsiteswithdata;
  NPP_DidCompositePtr didComposite;
} NPPluginFuncs;
Теги:
struct
npapi
lnk2001

1 ответ

2
Лучший ответ

Статические члены структуры (или класса) объявляются в typedef struct { }; и должен быть определен явно один раз:

#include "npfunctions.h"

Foo::pFuncs = NULL;  // optional initialization


int main()
{
    Foo::pFuncs = new NPPluginFuncs;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню