![]() |
1
0
我不确定在e32dll()中执行某项操作是否有效(但这并不像您想象的那样),因为在关闭应用程序之前,必须向用户显示一些通知或对话框。为什么不生成一个普通的dll+瘦启动代码,它将加载(使用rlibrary)并调用第一个序数函数:
溴 斯坦 您好,我是您的回复: 1)不,第一个序数不是 e32dll()。 ,无法调用此方法,因为eka2。检查下面的描述( http://developer.symbian.org/wiki/Symbian_OS_Internals/10._The_Loader ): 注意,在eka2中,公共dll入口点e32dll(tdlreason)不再被调用。此函数必须存在于每个eka1 dll中,以便在dll附加到进程或线程或从进程或线程分离时调用。不幸的是,这个入口点系统不能保证在指定的时间用适当的参数调用e32dll()。因为不可能可靠地支持这个功能,eka2取消了对它的支持。这种删除简化了用于管理动态加载代码的内核端体系结构,从而提高了可靠性和健壮性。 2)您也可以在这里找到有关此主题的有趣讨论: http://discussion.forum.nokia.com/forum/showthread.php?80781-What-is-the-replacement-for-E32Dll-and-TDllReason 3)在我们的例子中,第一个序数是您将从DLL导出的第一个函数。您可以在这里找到如何编写这样一个DLL的信息: http://developer.symbian.org/main/documentation/reference/s3/pdk/GUID-4A56B285-790E-5171-88F3-8C40B2AA9699.html 4)更具体地说,我从dll导出方法的意思是检查下面的代码(方法当然可以返回一些变量,例如新创建的对象):
希望有帮助… 溴 斯坦 |
![]() |
2
1
我已经找到了实现我目标的方法——当加载dll时调用一些方法。这个想法是在 http://developer.symbian.org/forum/showthread.php?p=30244 。 只需在某些dll模块中声明一些全局对象,当加载dll时将调用其构造函数。这个解决方案对我来说很好,而且,事实上,这个答案应该被接受… …但是由于我不是这个解决方案的作者,而且目前接受的答案仍然包含有价值的信息,所以我不会改变接受的标志。就这样吧。:) |