- 52
- 0
- 约2.83千字
- 约 21页
- 2017-07-09 发布于河南
- 举报
NPAPI开发环境详解.pdf
开发详解, 版
准备工作
开发工具
本例使用的是 英文版,下图是关于信息
本例使用 操作系统 这里下载
本例使用的是 提供的 。
首先,从这里下载 源码。然后,解压 文件。
将 目录解压缩出来,里面有我们开发 插件所需的所有资源。
为了方便大家使用,这里提供 的下载。
本例将 目标解压到 下(后面统一使用绝对路径,以避免异意)
创建
本着 有图有真相 的原则,下面将连续多图并配文字一步步创建、调试 。图中画红圈的代表需要填写或者需要选择
的地方。
创建项目
新建项目
项一定要以 开头,为了将来适应不同操作系统,最好全小写,不要太长,尽量控制在 字符内。
本例定义为
项定义到 以便项目属性中用相对路径引用 的
本例定义为
向导
选择 为
选择
添加文件
首先,添加 中的 文件
一共 个文件
然后,添加 文件
命名最好与项目一致
编辑 为
LIBRARY npdemo
EXPORTS
NP_GetEntryPoints @1
NP_Initialize @2
NP_Shutdown @3
现在,添加资源
选择
自动生成了 和 。由于要在版本信息中加项,所以手工
选择
在图中的 中添加。注意! 一定要是
VALUE MIMEType, application/demo-plugin
这里顺便说一下, 是 的唯一标示,需要自己定义
通常的格式是
本例中定义为
下面添加最关键的部分: 实现类
类名可以随便起,本例命名为
但是一定要继承自
修改
#pragma once
#include pluginbase.h
class CPlugin : public nsPluginInstanceBase
{
private:
NPP m_pNPInstance;
NPBool m_bInitialized;
public:
CPlugin(NPP pNPInstance);
~CPlugin();
NPBool init(NPWindow* pNPWindow) { m_bInitialized = TRUE; return TRUE;}
void shut() { m_bInitialized = FALSE; }
NPBool isInitialized() { return m_bInitialized; }
};
修改
其中实现了 个全局函数
#include plugin.h
////// functions /////////
NPError NS_PluginInitialize()
{
return NPERR_NO_ERROR;
}
void NS_PluginShutdown()
{
}
nsPluginInstanceBase * NS_NewPluginInstance(nsPluginCreateData
您可能关注的文档
最近下载
- 常州大学《大学英语一》2024-----2025学年期末试卷(A卷).pdf VIP
- 艾米克变频器AMK3100中文说明书使用手册.pdf
- 必背古诗词75首(可打印) .pdf VIP
- 某知名汽车维修企业员工手册范本.docx VIP
- 2025年二建水利b证考试真题及答案.docx
- 安全驾驶教育培训课件.ppt VIP
- 汽车维修车间员工职责手册.docx VIP
- 黑龙江省哈尔滨市第三中学校2025-2026学年高二上学期9月月考物理试卷.docx VIP
- 初中语文名著导读--《骆驼祥子》知识点总结归纳.docx VIP
- 实施指南(2025)《DAT 22-2015 归档文件整理规则》.pptx VIP
原创力文档

文档评论(0)