在我的应用程序中使用NPAPI插件

Using NPAPI plugin in my app

本文关键字:NPAPI 插件 我的 应用程序      更新时间:2023-10-16

我想在我的应用程序中使用NPAPI插件,我创建了一个函数,由浏览器提供给插件。加载库、初始化和启动,一切都很顺利,直到出现一个函数NPP_New。此函数导致崩溃,因为NPP指针(尝试指定0-函数返回错误代码2"无效实例",而不是崩溃)。我认为内存访问有问题。找到了几种内存共享的方法,但我不知道在这种情况下什么是合适的。

// ...
char szMimeType[] = "application/x-some-plugin";
NPP_t npp; npp.pdata = 0; npp.ndata = &npp;
UINT result = NPP_New(szMimeType, &npp, NP_FULL, 0, 0, 0, NULL);
// ...

@Georg Fritzsche,你说得对!问题出现在指向NPN_函数的指针中。变量NPNetscapeFuncs pNpnFuncs在我的一个函数中创建并填充为局部变量,因此在函数完成时被销毁。当我做pNpnFuncs全局变量时,一切都很好。