0

私の VS2010 DLL プロジェクトでは、このプロジェクトをコンパイルするときにエラーが発生しました: LNK 2001 unresolved external on pFuncsmember of my class:

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

ここでは、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;
4

1 に答える 1

2

構造体 (またはクラス) の静的メンバーは で宣言され、typedef struct { };一度明示的に定義する必要があります。

#include "npfunctions.h"

Foo::pFuncs = NULL;  // optional initialization


int main()
{
    Foo::pFuncs = new NPPluginFuncs;
}
于 2014-02-23T19:42:36.597 に答える