注意,CE6下OAL内无法调用API
来源:互联网 发布:程序员的表白代码 编辑:程序博客网 时间:2024/05/03 23:31
CE6下,oal.exe(即nk.exe)是个特殊的进程,它不能享受其他AP的进程那样,link一个lib的方式来和一个dll建立隐式链接,包括coredll.
OAL.exe也不能用Loadlibrary方式来加载dll,因为loadlibrary本身就是API,可以使用它的exe必须link coredll.lib。
可怜的oal只能访问kernel.dll,但是也是用特殊的方法(NKGlobal)来做到的,具体方法是,romimage帮忙吧NKGlobal的地址fixup在pTOC, oal通过pToc得到kernel.dll的入口地址和几个少的可怜的函数接口。在这里LoadOneLibrary和GetProcessAddrA之类的函数依然是在kernel实现,但是这些接口并没有默认提供给OAL,郁闷吧!? 因为heap在cE6下依然是coredll实现的,kernel可以通过loadlibrary的方式来搞定coredll,从而可以调用LocalAlloc之类的heap分配,但是oal就望尘莫及了,所以oal里面的东西比如kernelioctrl里面的函数实现代码不能使用堆!
我之前强行link coredll可以运行的原因也可能是pc指针在coredll.dll在没有load到kernel xip地址之前的代码段运行,这种方式是非常脆弱和不建议的。
- 注意,CE6下OAL内无法调用API
- JCO3调用SAP多个API时,需注意事务控制在一个session内
- 【Tesseract-OCR】在VS2012环境下调用API方法---注意避免名字冲突
- 拦截win32 API 调用(下)
- CE5.0/CE6.0下支持手写输入
- CE6相对CE5需要注意的事情(By Walle@ARMCE)
- GCC 内嵌汇编实现动态调用 windows API
- c#调用API显示内部局域网内的主机
- 9oal 当应用启动时,安卓将调用onCreate()方法
- ajax调用servlet,servlet内无法实现页面跳转
- 关于页面内JS函数无法调用原因。
- 用户模式下调用本机API
- wince下高级API调用Camer
- Openwrt下C调用UCI API
- Openwrt下C调用mysql API
- weblogic下htc文件无法调用问题
- 调用windows api删除非空文件夹无法删除问题
- CE6.0下开发基于MFC的程序
- 云端技术
- dwr调用中的参数和返回值问题
- ListCtrl控件笔记
- 哈哈,微软的CE6简直是大门洞开啊
- stl upper_bound函数实现
- 注意,CE6下OAL内无法调用API
- 【模拟】【RQNOJ】生命游戏
- 实现html页面自动刷性3中方法
- Oracle分析函数使用总结
- Struts笔记一
- 常用JS验证函数总结
- 探察RUNTIME_CLASS之类的秘密
- 在Redhat Linux下使用rstatd守护进程
- 不错的网站