c++ - LNK 2001 未解析的外部 NPPluginFuncs struct ptr 作为静态类成员

标签 c++ struct npapi lnk2001

<分区>

在我的 VS2010 DLL 项目中我有一个错误,当编译这个项目时:LNK 2001 unresolved external on pFuncs 我类的成员:

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;

最佳答案

结构(或类)的静态成员在 typedef struct { }; 中声明,并且需要显式定义一次:

#include "npfunctions.h"

Foo::pFuncs = NULL;  // optional initialization


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

关于c++ - LNK 2001 未解析的外部 NPPluginFuncs struct ptr 作为静态类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21973336/

相关文章:

java - C++基本字符串操作

c++ - 如何改变被其他线程占用的对象共享指针指向?

c - 错误: redefinition of typedef in c

windows - npapi 插件如何从浏览器获取 WM_ACTIVATE 消息?

c++ - 我应该在使用 STL 集时重载 == 运算符吗?

C++ 在具有 float 组的结构的二维 vector 上使用删除

SSL 证书上下文 - 如何使用 NPAPI 获取它

google-chrome - Chrome中电子智能卡的数字签名

swift - 使用 Swift 通过 PrepareForSegue 传递结构

c - 传递一个包含 NULL 的结构指针突然包含一个结构而不是 NULL