symbian 使用RLibrary加载DLL

news/2024/7/4 0:48:21

开发伙伴平台:
S60 3rd Edition, MR

详细描述
下列代码片段演示了如何动态加载一个多态的DLL。对静态DLL来说,程序在启动时自动加载到RAM中。也可以在任何不需要的时候自动卸载。一个多态的 DLL可以通过调用RLibrary::Load()加载,以及通过RLibrary::Close()卸载。多个多态DLL显示给客户端的可以是同样的 接口。这种DLL一般由提供插件特性的框架来使用。

MMP文件
需要下列链接库和能力:

Code:
CAPABILITY      None
LIBRARY euser.lib

多态DLL
* DLL的MMP文件中的UID2必须为0x1000008d
* DLL所拥有的能力必须等于或大于加载它的程序。当加载时,DLL运行在加载进程的能力级。因此这个DLL必须要有所有能执行它的程序的能力,及时里面的代码并不需要用到某种能力
* DLL必须完成定义的虚接口类
* DLL必须要有一个EXPORTED静态函数,其返回一个该接口类的示例


DLL的头文件应为:

Code:
class MMyDll
{
public:
virtual TInt Data() = 0;
};

class CMyDll : public MMyDll
{
public:
IMPORT_C static MMyDll* NewL();
virtual TInt Data();
};

DLL源文件:

Code:
EXPORT_C MMyDll* CMyDll::NewL()
{
return new CMyDll();
}

TInt CMyDll::Data()
{
return 1;
}

动态加载DLL

Code:
#include <e32std.h>

RLibrary library;

// Load dll
User::LeaveIfError(library.Load(_L("CMyDll")));

// Find exported function
TLibraryFunction NewL=library.Lookup(1);
MMyDll* mydll=(MMyDll*) NewL();

// Close the library
library.Close();

TInt value = mydll->Data();
delete mydll;

 


http://www.niftyadmin.cn/n/2308417.html

相关文章

ubuntu安装gnutls_在ubuntu中安装pyspider(注意事项)

最近生病&#xff0c;经历了半个月&#xff0c;总算是活过来了。既然没死&#xff0c;那学习就永无止境吧。今天讲讲在ubuntu中安装pyspider的注意事项吧。PySpider 是非常方便并且功能强大的爬虫框架&#xff0c;支持多线程爬取、JS动态解析&#xff0c;提供了可操作界面、出错…

合肥天鹅湖万达广场机器人_2021年元旦淮南万达广场非常热闹,商家打折促销,生意非常好...

今天是2021年的元旦&#xff0c;新年的第1天&#xff01;全省万达广场非常多&#xff0c;淮南万达开业已经接近两年&#xff0c;也是全省万达广场之一。今天我到淮南万达广场逛一逛&#xff0c;看一看。来到淮南万达广场&#xff0c;商家正忙的不亦乐乎&#xff0c;非常热闹&am…

后氧传感器正常数据_最简单实用的传感器检测方法(氧传感器、凸轮轴位置传感器等)...

1. 凸轮轴位置传感器(安装在凸轮轴上的凸轮轴位置传感器)01接插件的检测检查凸轮轴位置传感器的插接件接触是否良好&#xff0c;检测传感器插接件三个端脚之间是否有短路或严重漏电现象存在。02供电检测检测凸轮轴位置传感器端脚A所对应的插头与搭铁之间的5V供电电压是否正常&a…

aⅴgo安装包下载_【Windows系统】基于vscode搭建go语言开发环境

点蓝色字关注“CurryCoder的程序人生”微信公众号&#xff1a;CurryCoder的程序人生 怕什么真理无穷&#xff0c;进一寸有一寸的欢喜1.golang安装包下载与安装关于vscode的下载&#xff0c;请参见历史文章Ubuntu16.04下搭建vscode的C开发环境&#xff0c;本文就不再赘述啦~下面…

symbian 进度条 processbar

进度条&#xff08;Progressbar&#xff09;控件用于显示某个持续时间比较长的操作进度&#xff0c;例如邮件接受进度和文件下载进度大牛股。本节的ProgressBar示例程序显示了一个简单的进度条&#xff0c;进度随着事件增长&#xff0c;ProgressBar示例程序的运行界面如下如所示…

amd为什么还用针脚_英特尔CPU早就取消针脚了,AMD为什么还不取消?

英特尔和AMD竞争了这么多年&#xff0c;AMD唯一改变最小的恐怕就是接口了&#xff0c;到现在仍然坚持使用“老旧”的针脚式接口&#xff0c;而英特尔早在十多年以前就早早抛弃了针脚&#xff0c;使用了LGA触点式接口&#xff0c;当时人们还觉得AMD处理器不久后也将跟随英特尔全…

干活的不如写ppt的吗_吃相太难看:咱基层干活的不如写PPT的!

藏蓝观察社当下警事 警察心声 2018年8月27日晚&#xff0c;江苏省发生了著名的“昆山反杀案”&#xff0c;此案引发了全国热议&#xff0c;“正当防卫”的话题再次被摆到了桌面上。六哥一直在最基层工作&#xff0c;当然知道出了这样的“命案”一线警察将会又是多少的灯火通明的…

symbian在Series60中创建自定义列表(LISTBOX)

适用版本&#xff1a; S60 2nd Edition FP3, S60 3rd Edition 1&#xff0e;为什么要自定义 列表是在S60开发中经常用到的一个控件&#xff0c;在SDK中S60已经很周到的为我们提供了许多预定义的列表类型&#xff0c;其中包括 CAknSingleGraphicStyleListBox、CAknDoubleStyl…